Я успешно реализовал авторизацию в laravel 5.3. Но в Laravel 5.6 такой метод политики, как index, view, ... не работает, и Laravel не вызывает эти методы в политике. Зачем?
Контроллер:
public function index($member)
{
$this->authorize(Time::find($member));
...
}
AuthServiceProvider:
protected $policies = [
User::class => UserPolicy::class,
Time::class => TimePolicy::class,
];
TimePolicy:
public function index(User $user, Time $time)
{
if ($time->member_id == $user->id)
return true;
}
public function view(User $user, Time $time)
{
if ($time->member_id == $user->id) {
return true;
}
}
Почему Laravel 5.6 не вызывает связанный метод политики?
Нет, это не работает, проблема возникла для всех политик, когда я обновился с Laravel 5.3 до 5.6.
Вы получаете ошибку или просто игнорируете вызов метода?
Вызов метода @Helder Lucas просто игнорируется, и выдается ошибка 403.
@Helder Lucas проблема решена. Это был забытый код!






Я забыл использовать пространства имен Model в верхней части AuthServiceProvider. Проблема решена ;)
Не должно быть:
$this->authorize('index', Time::find($member));