尝试获取非对象的属性“is_admin”

hal*_*ala 1 laravel

我正在尝试为管理员构建一个身份验证中间件,但我尝试获取非对象的属性“is_admin”

namespace App\Http\Middleware;
use Illuminate\Support\Facades\Auth;
use Closure;

class Admin
{
    public function handle($request, Closure $next)
{ 
    if(auth()->user()->is_admin == 1){
        return $next($request);
        }
       return redirect()->route('login');

}
Run Code Online (Sandbox Code Playgroud)

当我打印 dd(auth()->user()) 时它返回 null

Imr*_*ran 7

auth()->user() 正在返回null

为什么?

因为用户没有登录。

因此,您可以通过以下方式修改您的条件:

if(auth()->user()->is_admin == 1)

到:

if(auth()->check() && auth()->user()->is_admin == 1)