应用过滤器时,Laravel Route错误

时间:2014-07-22 16:38:37

标签: php laravel

我正在尝试将身份验证添加到我的Laravel应用中。用户可以很好地登录,但我想确保访问页面的任何人都登录 - 我不希望有人为应用程序中的页面添加书签并转到它而不确保他们已经记录英寸

因此,我一直在研究过滤器。我一定不能正确实现它,因为当我转到我已添加过滤器的路由之一或链接到过滤路由的任何页面时,我收到以下错误call_user_func_array() expects parameter 1 to be a valid callback, no array or string given

routes.php文件

Route::get( '/admin/login',          'UserController@getAdminLoginForm');
Route::get( '/admin/races',          array('before' => 'auth', 'RaceController@getAllRacesView'));
Route::get( '/admin/geographies',    array('before' => 'auth', 'GeographyController@getLocalGeographiesView'));
Route::get( '/admin/candidates',     array('before' => 'auth', 'CandidateController@getAllCandidatesView'));

Filters.php

Route::filter('auth', function() {
    if (Auth::guest()) return Redirect::guest('/admin/login');
});

我在使用过滤器之前让页面正常工作,那么我对实现它有什么看法?

1 个答案:

答案 0 :(得分:1)

以下是有关向控制器操作添加过滤器的文档说明:

  

<强> Attaching A Filter To A Controller Action:

     

路由:: get(&#39;用户&#39;,数组(&#39;之前&#39; =&gt;&#39;旧&#39;,&#39;使用&#39; =&gt; &#39; UserController的@ showProfile&#39;));

简而言之,您缺少数组键uses。尝试这样的事情:

Route::get('/admin/races',    array('before' => 'auth', uses => 'RaceController@getAllRacesView'));