【问题标题】:retrieve Route name in laravel 4在laravel 4中检索路线名称
【发布时间】:2013-02-01 17:26:38
【问题描述】:

是否可以通过名称检索路线?

例如,如果我使用如下名称注册路由:

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

稍后,我想检索此路由的 URL。

类似

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

谢谢

【问题讨论】:

    标签: laravel routes laravel-4


    【解决方案1】:

    这可以在 Laravel 4 中完成,尽管它与 Laravel 3 略有不同。

    您只需在Redirect 类上使用redirect 函数,而不是to 函数。

    所以,你的应该是这样的:

    return Redirect::route('my_route_name');
    

    请参阅Laravel 4 routing documentation 了解更多信息。

    【讨论】:

    • 事实上,我在整个应用程序中都使用了路由名称。 (在 url 名称上获得更大的灵活性)所以我总是使用 redirect::route。但是在我的应用程序的某个时刻,我需要将 URL 转换为等效的路由名称。例如:mywebsite.com/dashboard 我想知道所有注册的路线中是否存在“仪表板”,如果是,那条路线的名称是什么。 (这样我将继续使用 redirect::route 模型,而不是 redirect::to )
    • 我认为你的问题不够清楚。另外,不太明白你在这里想要什么。您提供的代码没有说明您真正想要什么。
    • 好的,所以我有以下过滤器:` Route::filter('admin-auth', function() { if ( !Sentry::check()) { Session::put(' loginRedirect', Request::url()); return Redirect::route('admin_login'); } });` 用户通过身份验证后,我想将他重定向到 loginRedirect 会话值。但是 loginRedirect 值是一个 URI,我想保留名称路由重定向,所以我不想做 return Redirect::to (Session::get('loginRedirect')); 我想做的是:return Redirect::route (xxx); 我想检查注册的路由,如果一个匹配到 loginRedirect,如果是,则检索它的名字
    猜你喜欢
    • 2015-10-21
    • 2015-02-12
    • 2013-05-28
    • 1970-01-01
    • 2021-08-06
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    相关资源
    最近更新 更多