Политика 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 , когда модель вводится через маршрут. Есть ли способ явно сказать Ларавелу, какой метод политики использовать, когда модель не связана через маршрут? Правильный класс политики-но validateconnection () по-прежнему не вызывается при использовании Gate :: Authorize () в этом контексте контроллера. Все еще немного застрял в том, почему это молча не удается.


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

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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