laravel - 在 null 上调用成员函数 hasAnyRole()
问题描述
我是 laravel 的新手。我的中间件实际上有问题。我已经在 Kernel.php 文件上注册了它。
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()
:
public function handle($request, Closure $next){
if (Auth::check()) {
$user = Auth::user();
if($user->hasAnyRole('school'))
{
return $next($request);
}
} else {
return redirect('login');
}
}
推荐阅读
- c# - JArray 中的深度搜索
- html - 如何使用或
- c - 增加记录时 Malloc 失败
- java - 使用 Freenas 11.2 我的 java 进程在离开监狱外壳时关闭
- python - 基于二进制值进行汇总
- php - 条纹银行帐户 ID
- android - 如何在数据绑定表达式中使用 ?attr/colorAccent?
- .net - 从 HttpWebRequest 响应流反序列化 JSON 并取得进展
- javascript - JavaScript 可移动 div 和 JavaScript
- c++ - Windows Mutex 和 waitforsingleobject 如何在内部工作