在视图中获取路线名称 [英] get Route name in View

查看:79
本文介绍了在视图中获取路线名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图设计导航菜单,
我有3个这样的项目:

I trying to design navigation menu, I have 3 Items like this:


  • 仪表板

  • 页面

    • 列表

    • 添加


    • 列表

    • 添加

    现在,我想在用户位于此部分时加粗页面

    Now I want to bold Pages when user is in this section,

    ,如果在添加页面中,我想同时加粗 Pages 添加

    and if is in Add page I want bold both Pages and Add

    我的 routes.php 是:

    Route::group(array('prefix' => 'admin', 'before' => 'auth.admin'), function()
    {
        Route::any('/', 'App\Controllers\Admin\PagesController@index');
        Route::resource('articles', 'App\Controllers\Admin\ArticlesController');
        Route::resource('pages', 'App\Controllers\Admin\PagesController');
    });
    

    我发现了这种方法:

    $name = \Route::currentRouteName();
    var_dump($name);
    

    但是此方法返回 string'admin.pages.index'(length = 17)

    我应该使用 splite 来获取控制器还是Laravel有一种方法这个?

    Should I use splite to get controller or Laravel have a method for this ?

    推荐答案

    您可以使用它(获取当前操作,即 HomeController @ index

    You may use this (to get current action, i.e. HomeController@index)

    Route::currentRouteAction();
    

    这将返回操作,如 HomeController @ index ,您可以在视图中使用类似的东西

    This will return action like HomeController@index and you can use something like this in your view

    <!-- echo the controller name as 'HomeController' -->
    {{ dd(substr(Route::currentRouteAction(), 0, (strpos(Route::currentRouteAction(), '@') -1) )) }}
    
    <!-- echo the method name as 'index' -->
    {{ dd(substr(Route::currentRouteAction(), (strpos(Route::currentRouteAction(), '@') + 1) )) }}
    

    Route :: currentRouteName()方法返回用作<$的路由名称c $ c>'as'=>路径声明中的 routename 。

    这篇关于在视图中获取路线名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆