Php Laravel-读取路线名称,如果有组
我的问题是,如果我有例如以下路线组,如何在Laravel FW中读取当前路线名称:Php Laravel-读取路线名称,如果有组,php,laravel,laravel-4,get,laravel-routing,Php,Laravel,Laravel 4,Get,Laravel Routing,我的问题是,如果我有例如以下路线组,如何在Laravel FW中读取当前路线名称: Route::group(['prefix' => 'machines'], function(){ // GET Route::get('/', array('uses' => 'ServerController@index', 'as' => 'machines')); Route::get('/update/{id}', ar
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>';
});
我想创建“动态”宏,它将创建
项,它将检查它是否是活动项,然后通过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>';
});
这是“动态活动菜单”的工作代码。根据您的评论,使用Request::is
<li {{ Request::is('portal') ? 'class="active"' : '' }}>
<a href="{{ URL::route('admin.dashboard') }}"><i class="fa fa-dashboard"></i>Dashboard</a>
</li>
您在哪里使用currentRouteName?为什么?编辑:另外,似乎在Laravel 4.1中,currentRouteName已被替换。是的,但它现在(仍然)有效。我试图通过比较路由名称来执行“活动菜单”。您也可以使用通配符,例如Request::is('update/*)“手动检查”可以,但现在请看我的问题,我编辑了它。您使用的是什么版本的Laravel?4.1。在我在文档中找到返回我想要的函数之前的第二秒(这很难)路由::currentRouteName()
被更改为路由::当前()->getName()
,现在它正确地返回了我想要的内容。
{{ HTML::nav_link('machines', 'Machines', array()); }}
<li {{ Request::is('portal') ? 'class="active"' : '' }}>
<a href="{{ URL::route('admin.dashboard') }}"><i class="fa fa-dashboard"></i>Dashboard</a>
</li>