2014-03-24 106 views
0

這裏是我的路線:給路線添加功能?

Route::get('log-in', array(
'as' => 'log-in', 
'uses' => '[email protected]' 
)); 

什麼是在測試添加到它的最佳方式:

Route::get('log-in', function() 
{ 
    if (Auth::check())//do something 
}); 

我知道我可以將其添加爲一個過濾器,但我只需要它這條路線。

+0

爲什麼不把它作爲過濾器呢? 'Route :: get('log-in',array('before'=>'filtername','as'=>'登錄','uses'=>'AuthController @ getLogIn'));' – alexrussell

回答

2

你不能兩者都做,有一個功能,在您的路由控制器動作,所以我看到三個選項:

1)添加爲S過濾器,這是最好的一個。

2)在該閉包(匿名函數)中實例化您的控制器並從中調用該操作。

3)在您的控制器或控制器調用的任何服務類中執行Auth::check()

0

auth filte已經存在,爲什麼不使用它?

Route::get('log-in', array(
'before' => 'auth', 
'as' => 'log-in', 
'uses' => '[email protected]' 
)); 
0

您可以創建在「應用程序/ filter.php」這樣的文件過濾器:

Route::filter('myFilterName', function() { 

    if (!Auth::check()) 
    { 
      return Redirect::route('MyNamedRoutToLoginPage'); 
    } 
}); 

然後,你可以在這樣的「應用程序/ routes.php文件」文件中使用它:

Route::group(array('before' => 'myFilterName'), function() { 

// do your action here if user is logged 

});