Laravel 对成员函数hasAnyRole()的调用为null
我是拉威尔的新手。实际上,我的中间件有问题。我已经在Kernel.php文件中注册了它Laravel 对成员函数hasAnyRole()的调用为null,laravel,middleware,Laravel,Middleware,我是拉威尔的新手。实际上,我的中间件有问题。我已经在Kernel.php文件中注册了它 public function handle($request, Closure $next){ $user = Auth::user(); if($user->hasAnyRole('school')) { return $next($request); } return redirect('login'); } 这是我的用
public function handle($request, Closure $next){
$user = Auth::user();
if($user->hasAnyRole('school'))
{
return $next($request);
}
return redirect('login');
}
这是我的用户模型
public function roles(){
return $this->belongsToMany('App\Role');
}
public function hasAnyRoles(){
return null !== $this->roles()->whereIn('name', $roles)->first();
}
public function hasAnyRole(){
return null !== $this->roles()->where('name', $role)->first();
}
尝试翻转逻辑并检查是否已登录。 执行
(Auth::check()
:
这意味着您的$user变量为null,对吗?您使用的是
spatie
?不,我没有使用SPATIETHAKS,我不再有那个错误。现在我看到这个页面不工作了。LocalHost重定向了您太多次。请尝试清除cookie。错误太多重定向。我在使用中间件时经常会收到。我清除了我的饼干坏了,但还是坏了。
public function handle($request, Closure $next){
if (Auth::check()) {
$user = Auth::user();
if($user->hasAnyRole('school'))
{
return $next($request);
}
} else {
return redirect('login');
}
}