我想解析为路由配置的控制器名称和操作
我有一条路线:
Route::get('/somePage','SomeController@someAction');
我可以使用类似的方式获取控制器名称和动作吗?
resolve('/somepage');
获得与Route::current()->getActionName()
App\Http\Controllers\SomeController@someAction
答案 0 :(得分:4)
这应该有效:
function getAction($uri, $method) {
$route = collect(Route::getRoutes())
->filter(function($route) use($uri, $method){
return $route->getUri() === $uri &&
in_array($method, $route->getMethods());
})->first();
return $route ? $route->getAction() : null;
}
用法:
$action = getAction('posts', 'GET');
或者:
$request = \Illuminate\Http\Request::create('posts', 'GET');
$action = Route::getRoutes()->match($request)->getAction();
答案 1 :(得分:0)
我通常使用 route('somePageRoute')方法,但要先命名路由
Route::get('/somePage','SomeController@someAction')->name('somePageRoute');
答案 2 :(得分:-1)
仅此即可获得控制器名称和操作
request()->route()->getAction()