在Laravel v4中,我可以使用…
Route::currentRouteName()
我如何在Laravel v5和Laravel v6中做到这一点?
在Laravel v4中,我可以使用…
Route::currentRouteName()
我如何在Laravel v5和Laravel v6中做到这一点?
当前回答
解决方案:
$routeArray = app('request')->route()->getAction();
$controllerAction = class_basename($routeArray['controller']);
list($controller, $route) = explode('@', $controllerAction);
echo $route;
其他回答
现在在Laravel 5.3中,我看到可以做出类似的尝试:
$route = Route::current();
$name = Route::currentRouteName();
$action = Route::currentRouteAction();
https://laravel.com/docs/5.3/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'
]);
\Request::path()
我用这个来获取当前uri
你可以使用这行代码:url()->current()
在刀片文件中:{{url()->current()}}
使用Laravel 5.1,您可以使用
\Request::route()->getName()