簡體   English   中英

Laravel-讀取路線名稱,如何分組

[英]Laravel - read route name, how if had group

我的問題是,如果有例如以下路由組,如何在Laravel FW中讀取當前路由名稱:

        Route::group(['prefix' => 'machines'], function(){
        // GET
        Route::get('/', array('uses' => 'ServerController@index', 'as' => 'machines'));
        Route::get('/update/{id}', array('uses' => 'ServerController@update', 'as' => 'machines.Update')); 
        //POST
        Route::post('/updatePost/{id}', array('uses' => 'ServerController@updatePost', 'as' => 'machines.UpdatePost'));

        });

通常,我使用以下方法讀取此值: Route::currentRouteName()但它僅對Route::get('/', ***); 並且不適用於(例如: Route::get('/update/{id}');其名稱為'machines.Update'。它什么也不返回。

為什么我要這樣做? 我試圖創建“活動菜單”。 現在,我的函數呈現如下:

HTML::macro('nav_link', function ($route, $title, $parameters = array()) {

$class = '';

if(Route::currentRouteName() == $route) {
    $class = ' class="active" ';
} else {
    $class = '';
}

return '<li' . $class . '>' . link_to_route($route, $title, $parameters = array()) . '</li>';

});

{{ HTML::nav_link('dashboard', 'Dashboard', array()); }}
{{ HTML::nav_link('machines', 'Machines', array()); }}

我想創建“動態”宏,該宏將創建<li>項,並檢查它是否為活動項,然后通過class="active"將其賦予活動狀態。

解:

在Laravel 4.1中, Route::currentRouteName()更改為Route::current()->getName() ,現在它像地獄一樣工作:)

對於后代:

HTML::macro('nav_link', function ($route, $title, $parameters = array()) {

$class = '';

if(strpos(Route::current()->getName(), $route) !== false) {
    $class = ' class="active" ';
} else {
    $class = '';
}

return '<li' . $class . '>' . link_to_route($route, $title, $parameters = array()) . '</li>';

});

用法:

{{ HTML::nav_link('machines', 'Machines', array()); }}

它是“動態活動菜單”的工作代碼。

根據您的評論,使用Request :: is

<li {{ Request::is('portal') ? 'class="active"' : '' }}>
    <a href="{{ URL::route('admin.dashboard') }}"><i class="fa fa-dashboard"></i>Dashboard</a>
</li>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM