Laravel 在拉威尔,盖茨总是返回错误
gatesLaravel 在拉威尔,盖茨总是返回错误,laravel,Laravel,gatesGate::define('edit-setting',函数($login){return$login->isAdmin;}) 内部控制器 if(Gate::allows('edit-setting',Auth::guard('logindetail')->user()){echo“Gate in”} 这总是返回false 如果我更改了allows to denies,则需要添加Auth::shouldUse('logindetail') AuthServiceProvider.php
Gate::define('edit-setting',函数($login){return$login->isAdmin;})代码>
内部控制器
if(Gate::allows('edit-setting',Auth::guard('logindetail')->user()){echo“Gate in”}
这总是返回false
如果我更改了allows to denies,则需要添加Auth::shouldUse('logindetail')如果您使用的是非默认保护,则在调用Gate方法之前执行code>
AuthServiceProvider.php
Gate::define('edit-setting',function($login){
return $login->isAdmin();
});
Controller.php
\Auth::shouldUse('logindetail');
if(Gate::allows('edit-setting')) {
echo "gate in";
}
User.php
public function isAdmin() {
return $this->role == 'admin' || $this->role == 'superadmin';
}
我们可以看到isAdmin吗?公共函数isAdmin(){return$this->role;}盖茨已经将经过身份验证的用户传递给了他们,您自己在进行授权检查时没有传递该用户即使我删除了参数也不起作用我添加了括号,但我仍然得到了错误$this->role返回了什么?是关系还是属性?另外,您需要确保调用了isAdmin函数。$this->role-role-Is-column-in-databaseisadmin函数在我尝试控制器时被正确调用