Проблема политики пользователя Когда я определяю две модели пользователя - PullRequest
1 голос
/ 18 мая 2019

Я использую Политики в Laravel. Когда я использую две пользовательские модели в политике, я не получу к ним доступ! Тем не менее, и $user, и $player возвращают мне правильные данные по отдельности. Как я могу справиться с этим? В чем моя ошибка?

в контроллере:

$this->authorize('modifyTournamentRegistration', $player);

в полисе:

public function modifyTournamentRegistration(User $user, User $player)
    {
        return $user->id === $player->id || $user->inRole('admin');
    }

1 Ответ

1 голос
/ 18 мая 2019

Я обнаружил, что это из-за типа входной переменной в политике.Я добавил класс пользователя в AuthServiceProvider:

protected $policies = [
        'App\Model' => 'App\Policies\ModelPolicy',
        User::class => UserPolicy::class,
    ];

Затем я определил функцию в UserPolicy:

public function modifyPlayerTournamentRegistration(User $user, User $player)
    {
        return $player->id === $user->id || $user->inRole('admin');
    }

И использовал ее в контроллере:

$this->authorize('modifyTournamentRegistration', $player);

Itработает так же:)

...