ari*_*lcr 4 php laravel laravel-4
如何在路由中添加过滤器并将控制器传递给它?
在Laravel的文档中,他们说你可以为这样的路线添加一个过滤器:
Route::get('/', array('before' => 'auth', function()
{
return 'Not Authorized';
}));
Run Code Online (Sandbox Code Playgroud)
但我需要传递一个控制器,如下所示:
Route::get('/', array('before' => 'auth', 'HomeController@index'));
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我得到了这个错误:
call_user_func_array() expects parameter 1 to be a valid callback, no array or string given
Run Code Online (Sandbox Code Playgroud)
任何的想法?
dev*_*evo 10
你应该用useskey 传递控制器功能,所以替换,
Route::get('/', array('before' => 'auth', 'HomeController@index'));
Run Code Online (Sandbox Code Playgroud)
随着,
Route::get('/', array('as' => 'home', 'before' => 'auth', 'uses' => 'HomeController@index'));
Run Code Online (Sandbox Code Playgroud)
并且应该有一个登录路由来处理这样的auth过滤器.
Route::get('login', function()
{
if(Auth::user()) {
return Redirect::to('/');
}
return View::make('login');
});
Run Code Online (Sandbox Code Playgroud)
小智 5
想为您的问题添加另一种解决方案.
你也可以使用它,在我看来,它更具可读性.
Route::get('/', 'HomeController@index')->before('auth');
Run Code Online (Sandbox Code Playgroud)
如果您需要命名路线,则只需使用"as"和"uses",例如.对于表单路由.
| 归档时间: |
|
| 查看次数: |
3308 次 |
| 最近记录: |