2013-02-17 94 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