Laravel 4.2 |构造beforeFilter - auth check

时间:2016-05-23 13:27:09

标签: php laravel authentication before-filter

我有这段代码:

function __construct() {
  $this->beforeFilter('auth');

  if (Auth::user()->hasRole('A')) {
    return \Redirect::route('B')->send();
  }
}

Route::filter('auth', function()
{
    if (Auth::guest())
    {
        if (Request::ajax())
        {
            return Response::make('Unauthorized', 401);
        }
        else
        {
            return Redirect::guest('auth/login');
            die();
        }
    }
});

结果是这个错误:

  

在null

上调用成员函数hasRole()

身份验证过滤器应将我自动重定向到身份验证页面。但在完成所有功能之前,它不会这样做。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

嗯,这是解决方案:

function __construct() 
{
  if ($this->beforeFilter('auth')) {
    if (Auth::user()->hasRole('A')) {
      return \Redirect::route('B')->send();
    }
  }
}