在Laravel v4中,我可以使用…
Route::currentRouteName()
我如何在Laravel v5和Laravel v6中做到这一点?
在Laravel v4中,我可以使用…
Route::currentRouteName()
我如何在Laravel v5和Laravel v6中做到这一点?
当前回答
访问当前路由
在Blade模板中获取当前路由名
{{ Route::currentRouteName() }}
更多信息https://laravel.com/docs/5.5/routing#accessing-the-current-route
其他回答
在一个控制器动作中,你可以这样做:
public function someAction(Request $request)
{
$routeName = $request->route()->getName();
}
$request是由Laravel的服务容器解析的。
getName()仅返回已命名路由的路由名,否则为空(但您仍然可以探索\Illuminate\Routing\ route对象以获得其他感兴趣的内容)。
换句话说,你应该像这样定义你的路由,并返回"nameOfMyRoute":
Route::get('my/some-action', [
'as' => 'nameOfMyRoute',
'uses' => 'MyController@someAction'
]);
你可以使用这行代码:url()->current()
在刀片文件中:{{url()->current()}}
如果你想在多条路线上选择菜单,你可以这样做:
<li class="{{ (Request::is('products/*') || Request::is('products') || Request::is('product/*') ? 'active' : '') }}"><a href="{{url('products')}}"><i class="fa fa-code-fork"></i> Products</a></li>
或者如果你想只选择一个菜单,你可以简单地这样做:
<li class="{{ (Request::is('/users') ? 'active' : '') }}"><a href="{{url('/')}}"><i class="fa fa-envelope"></i> Users</a></li>
在Laravel 5.2中也进行了测试
希望这能帮助到一些人。
现在在Laravel 5.3中,我看到可以做出类似的尝试:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
https://laravel.com/docs/5.3/routing#accessing-the-current-route
由于某些原因,我不能使用这些解决方案。所以我刚刚在web.php中声明了我的路由$router->get('/api/v1/users', ['as' => 'index', 'uses' => 'UserController@index']),在我的控制器中,我得到了路由的名称使用$routeName = $request->route()[1]['as'];在UserController的索引方法中,哪个$request是\Illuminate\Http\ request $request类型暗示参数
使用Lumen 5.6。希望它能帮助到一些人。