1 回答

TA貢獻2051條經驗 獲得超10個贊
當我的會話到期并重新加載頁面時,我收到以下錯誤(在以下代碼塊中發出信號的行):
hasRole()錯誤:調用成員函數null
class AdminMiddleware
{
public function handle($request, Closure $next) {
if ($request->user()->hasRole('admin')) // this line
return $next( $request );
else
abort( 401, 'Esta acción no está autorizada.' );
}
}
hasRole()是我User模型中的一個函數,用于檢查用戶是否有權訪問某些管理路由:
class User extends Authenticatable
{
/**
* Role-user relation (one-to-many)
*/
public function roles() {
return $this->belongsToMany( Role::class )->withTimestamps();
}
/**
* Authorize roles
*/
public function authorizeRoles($roles) {
if ($this->hasAnyRole($roles))
return true;
abort( 401, 'Esta acción no está autorizada.' );
}
/**
* Check if user has specified role
*/
public function hasRole($role) {
if ($this->roles()->where('name', $role)->first())
return true;
return false;
}
}
- 1 回答
- 0 關注
- 145 瀏覽
添加回答
舉報