试图获得非对象Laravel 5.5的属性'slug'

问题描述 投票:0回答:1

我的AdminMiddleware代码是::

<?php

namespace App\Http\Middleware;

use Closure;
use Sentinel;

class AdminMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(Sentinel::check()&&Sentinel::getUser()->roles()->first()->slug =='admin')
            return $next($request);
        else
            return redirect('/accessories');    
    }
}

当我想去::

Route::get('/earnings', 'AdminController@earnings')->middleware('admin');

它显示如下错误:

试图获得非对象的属性'slug'

php laravel
1个回答
0
投票

这可能是因为Sentinel::getUser()->roles()不是一个对象,意思是:用户没有任何角色

添加另一张支票

if(Sentinel::check() && isset(Sentinel::getUser()->roles) && Sentinel::getUser()->roles()->first()->slug =='admin'){
//Other code

}

© www.soinside.com 2019 - 2024. All rights reserved.