Политика Laravel не вызывается, когда модель разрешается динамически ⇐ Php

Кемеровские программисты php общаются здесь
Anonymous
Политика Laravel не вызывается, когда модель разрешается динамически

Сообщение Anonymous »

Я сталкиваюсь с проблемой, когда политики Ларавела не были запускаются, как и ожидалось.

Код: Выделить всё

public function validate(Request $request)
{
$request->validate([
'link_code' => 'required|string',
]);

$data = json_decode($request->getContent(), true);

/** @var \App\Models\ConnectionCode|null $code */
$code = \App\Models\ConnectionCode::where('code', $data['link_code'])->first();

Gate::authorize('validateConnection', $code);

// Additional logic here...
}
< /code>
Я также попробовал: < /p>
$code = \App\Models\ConnectionCode::where('code', $data['link_code'])->firstOrFail();
Метод политики validateconnection () существует и работает, когда модель вводится непосредственно через привязку модели маршрута (например, другие методы контроллера), но здесь кажется, что Ларавел не распознает модель и не называют политику во всех -без ошибки, ничто. />

Код: Выделить всё

public function validateConnection(User $user, ConnectionCode $code): bool
{
return $code->device->user_id === $user->id;
}
Я проверил, что политика зарегистрирована в работе AuthserviceProvider , и другие методы политики на ConnectCode , когда модель вводится через маршрут. Есть ли способ явно сказать Ларавелу, какой метод политики использовать, когда модель не связана через маршрут?


Подробнее здесь: https://stackoverflow.com/questions/796 ... ynamically

Вернуться в «Php»