我想解析为路由配置的控制器名称和操作
我有一条路线:
Route::get('/somePage','SomeController@someAction');
Run Code Online (Sandbox Code Playgroud)
我可以使用以下方法获取控制器名称和操作:
resolve('/somepage');
Run Code Online (Sandbox Code Playgroud)
收到与我相同的结果Route::current()->getActionName()
App\Http\Controllers\SomeController@someAction
Run Code Online (Sandbox Code Playgroud)
这应该有效:
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;
}
Run Code Online (Sandbox Code Playgroud)
用法:
$action = getAction('posts', 'GET');
Run Code Online (Sandbox Code Playgroud)
或者:
$request = \Illuminate\Http\Request::create('posts', 'GET');
$action = Route::getRoutes()->match($request)->getAction();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
300 次 |
| 最近记录: |