我在filters.php中定义了这个过滤方法
Route::filter('auth', function()
{
if (Auth::guest())
{
if (Request::ajax())
{
return Response::make('Unauthorized', 401);
}
else
{
return Redirect::guest('login');
}
}
});
当我将此代码添加到控制器
时public function __construct()
{
$this->beforeFilter('auth');
}
它给了我Illuminate\Routing\RouteCollection.php
答案 0 :(得分:0)
为什么要把它放在控制器中?您可以在route.php中将过滤器附加到路由或控制器。假设您有多条路线要检查用户是否为来宾。因此,在routes.php中,您可以定义组过滤器。如果在控制器中定义该过滤器,则必须将过滤器附加到每个控制器。见下面的例子:
Route::group(array('before' => 'auth'), function()
{
Route::get('user/account', 'UserController@account');
Route::get('user/settings', 'UserController@settings');
Route::get('post/create', 'PostController@create');
Route::post('post/store', 'PostController@store');
// ...
});
示例强>
验证过滤器
Route::filter('auth', function()
{
if (Auth::guest()) return Redirect::guest('login');
});
将Auth Filter附加到控制器
Route::get('user', array('before' => 'auth', 'uses' => 'UserController@showProfile'));