2014-02-07 53 views
3

我試圖設計導航菜單, 我有3個項目是這樣的:獲得查看路線名稱

  • 儀表板
  • 頁面
    • 列表
    • 添加
  • 文章
    • 清單
    • 添加

現在我想大膽Pages當用戶在本節中,

,如果是在Add頁我想大膽既PagesAdd

routes.php是:

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

我發現THID方法:

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

但這種方法的返回string 'admin.pages.index' (length=17)

我應該使用splite得到控制或Laravel有這樣的方法?

回答

4

你可以使用這個(獲得當前的動作,即[email protected]

Route::currentRouteAction(); 

這將返回action[email protected],你可以使用這樣的事情在你看來

<!-- 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()方法返回的路線是在你的路線聲明作爲'as' => 'routename'的名稱。

+1

這正是我所需要的,謝謝! –

5

Request::segments()將返回數組與當前的URL,例如:

yoursite/admin/users/create 

會給:

array(2) { 
    [0] "admin" 
    [1] "users" 
    [2] "create" 
} 
+0

謝謝,我怎麼能在'view'使用?我的意思是在'Blade'模板中 – MajAfy

+0

請求在Views中是可訪問的,但是你也可以使用'with'方法來傳遞它:View :: make('your-view') - > with(array('activeController' => Request :: segment(2)));或'activeMenus'=> Request :: segments() – diegofelix

4

刀片:

<p style="font-weight:{{ (Route::current()->getName() == 'admin.pages.index' && Request::segment(0) == 'add') ? 'bold' : 'normal' }};">Pages</p>