У меня есть Board.php
модель с методом checkViewAccess()
Authorization от модели
т.е.
@if($board->checkViewAccess())
render board
@endif
Он делает несколько проверок, и на последней проверки он должен вызвать метод политики, чтобы определить разрешение для пользователь.
- В лезвии,
@can('view', $board)
работает - В контроллерах
$this->authorize('view', $board)
работает
Но я не могу за жизнь мне найти любой способ вызвать авторизацию политики от Board
модели
Что я пробовал:
Gate::check('view', $this)
// Нестатический метод, который в порядке, не ожидал, что он сработаетauth()->user()->can('view', $this)
// Это даже не касается политики и возвращает false, независимо от того, что я возвращаю из политики. Даже если я просто вернусь true в методе политикиbefore()
, это значение false. Laravel документы утверждают, что методcan()
доклада доступен на объекте пользователя$user->can('view', $this);
// Думая, что это была проблема с Идент фасадом, я извлекаться пользователем непосредственно из базы данных, и он до сих пор не попал в политике
Итак, как я могу это достичь? Как я могу получить доступ к авторизации laravels из модели?
вопрос Вам нужно спросить себя: «Зачем мне это нужно в модели?» и тогда «есть ли лучшее место, где я мог бы это сказать?» – Samsquanch