2013-02-17 98 views
1

是否可以按名稱檢索路由?在laravel 4中檢索路由名稱

爲爲例,如果我註冊一個名稱的路線如下圖所示:

Route::get('dashboard', array(
     'as' => 'my_route_name', 
     function() 
     { 
      ...; 
     }) 
    ); 

再後來,我想檢索該路由的URL。

喜歡的東西

$myRoute = Route::getRoutebyname("my_route_name"); 
Redirect::to($myRoute::url()); 

謝謝

回答

1

這可以在Laravel 4來完成,雖然它是從Laravel 3.略有不同

你只需要使用redirect功能上Redirect類,而不是to函數。

所以,你應該是這樣的:

return Redirect::route('my_route_name'); 

更多信息,請參見Laravel 4 routing documentation

+0

事實上,我使用的路線名稱遍佈我的應用程序。 (爲了獲得更多的url名稱靈活性) 所以我總是使用重定向::路由。 但在我的應用程序的某些時候,我需要將URL轉換爲等效的路由名稱。 例如: http://mywebsite.com/dashboard 我想知道,如果「儀表盤」,在所有已註冊的路線,如果是存在的,那是什麼路線的名稱。 (這樣我會繼續使用重定向::路由模型,而不是重定向::到) – 2013-02-18 14:19:48

+0

我覺得你的問題還不夠清楚。另外,一個真正不明白你想在這裏。你提供的代碼沒有解釋你真正想要的。 – 2013-02-18 15:24:20

+0

好了,我有以下過濾器:' 路線 ::過濾器( '管理-auth的',函數(){ 如果 (哨兵::檢查()){ 屆 ::把('loginRedirect! ',Request :: url()); return Redirect :: route('admin_login'); } });' 用戶驗證通過後,我想將他重定向到loginRedirect會話值。但loginRedirect的值是一個URI,我想保留名稱路由重定向,所以我不想做 'return Redirect :: to(Session :: get('loginRedirect'));' 我想要做的: ' return Redirect :: route(xxx);' 我想檢查已註冊的路由,如果有一個匹配loginRedirect,並且如果是,請檢索它的名稱 – 2013-02-19 15:49:46