2013-06-20 35 views
1

我嘗試這樣做:Laravel路由不同的控制器,如果驗證?

Route::get('/', '[email protected]'); 
Route::group(array('before' => 'auth'), function(){ 
    Route::controller('/',   'HomeController'); 
}); 

但它始終是需要登錄。

我希望在登錄時訪問'/'時調用PageController @ getIndex,否則將調用HomeController(@getIndex)。

我知道我可以設置一個重定向,但我想在路由中處理它。

+0

是啊,我不知道這種方式是可行的。您將兩個位置分配到相同的路由位置,並聲明您要在到達該位置之前進行身份驗證。您可以在主頁中使用嵌套視圖,並在登錄視圖之前需要Auth :: check(),否則需要使用正常主頁或其他東西。否則,我不知道你是否能夠將2個單獨的頁面路由到同一位置。 – SamSquanch

回答

1

您需要設置自己的身份驗證過濾器

if(!Auth::check()){ 
    return Route::get('/', '[email protected]'); 
} else { 
    Route::controller('/',   'HomeController'); 
} 
+0

值得記住的是,如果您在Laravel的後續版本中使用路由緩存(我相信5.1及更高版本具有該功能),這將不起作用。 – Dwight