в laravel воротах всегда возвращается ложь - PullRequest
0 голосов
/ 12 июля 2020

ворота Gate::define('edit-setting',function($login){ return $login->isAdmin; });

в контроллере if(Gate::allows('edit-setting',Auth::guard('logindetail')->user())) { echo "gate in" }

это всегда возвращает false, и если я изменяю, позволяет отрицать его работу

1 Ответ

0 голосов
/ 12 июля 2020

Вам необходимо добавить Auth::shouldUse('logindetail'); перед вызовом методов Gate, если вы используете защиту не по умолчанию.

AuthServiceProvider. php

Gate::define('edit-setting',function($login){
    return $login->isAdmin(); 
});

Controller. php

\Auth::shouldUse('logindetail');

if(Gate::allows('edit-setting')) {
     echo "gate in";
}

Пользователь. php

public function isAdmin() {
    return $this->role == 'admin' || $this->role == 'superadmin';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...