4

ルートにフィルターを追加してコントローラーを渡すにはどうすればよいですか?

Laravel のドキュメントでは、次のようにフィルターをルートに追加できると述べています。

Route::get('/', array('before' => 'auth', function()
{
     return 'Not Authorized';
}));

しかし、次のようにコントローラーを渡す必要があります。

Route::get('/', array('before' => 'auth', 'HomeController@index'));

しかし、そのようにすると、次のエラーが発生します。

call_user_func_array() expects parameter 1 to be a valid callback, no array or string given

何か案が?

4

2 に答える 2

10

usesコントローラ関数はキーで渡す必要があるので, 置き換えてください.

Route::get('/', array('before' => 'auth', 'HomeController@index'));

と、

Route::get('/', array('as' => 'home', 'before' => 'auth', 'uses' => 'HomeController@index'));

authそして、このようなフィルターを処理するためのログイン用のルートが必要です。

Route::get('login', function()
{
   if(Auth::user()) {
      return Redirect::to('/');
   }

   return View::make('login');
});
于 2013-09-26T15:55:27.620 に答える