Laravel beforeFilter在控制器中不起作用

时间:2015-02-08 00:09:00

标签: php laravel laravel-4

我想在登录和注册页面上应用过滤器,因此已经登录的用户将被重定向到索引页面。这是路线:

Route::controller('users', 'UsersController');

以下是UserController中的beforeFilters:

public function __construct()
{
    $this->beforeFilter('guest', ['on' => 'getLogin']);
    $this->beforeFilter('guest', ['on' => 'getRegister']);
}

以下是getLogin操作:

public function getLogin()
{
    return View::make('users/login');
}

过滤器本身(filters.php):

Route::filter('guest', function()
{
    if (Auth::check()) return Redirect::to('/');
});

但是,当我已经登录并尝试访问登录页面或注册页面时,我没有重定向到'/'。可能是什么问题?

1 个答案:

答案 0 :(得分:2)

'on'实际上是用于指定HTTP谓词。试试这个:

$this->beforeFilter('guest', ['only' => ['getLogin', 'getRegister']]);