我想对登录和注册页面应用一个过滤器,这样已经登录的用户将从他们重定向到索引页面。这是路线:
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('/');
});
然而,当我已经登录并试图访问登录或注册页面时,我不会重定向到"/"。问题出在哪里?
'on'
实际上是用于指定HTTP谓词的。试试这个:
$this->beforeFilter('guest', ['only' => ['getLogin', 'getRegister']]);