laravel - 在 Laravel 中获取路由的控制器和动作
问题描述
我想解析为路由配置的控制器名称和操作
我有一条路线:
Route::get('/somePage','SomeController@someAction');
我可以使用以下内容获取控制器名称和操作:
resolve('/somepage');
获得相同的结果,我可以从中得到Route::current()->getActionName()
App\Http\Controllers\SomeController@someAction
解决方案
这应该有效:
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();
推荐阅读
- wpf - 如何使用默认标题栏功能制作透明 WPF 窗口?
- php - 内爆多维数组键和值
- c - “O_DIRECT 512 字节对齐”是什么意思?
- mmap - 当 mmap 和 memcpy 特定文件(/sys/devices/pci~~ 递归文件)时内核崩溃
- python - 如何在包含字典的循环上实现错误处理?
- google-translate - 为什么 HTML 标记中的文本有时无法翻译?
- android - 真正的android双显示权限问题
- google-cloud-platform - 使用部署管理器更新 API 更新现有部署
- java - 如何在 JFR 中启用对象统计?
- python - Tkinter 对象没有属性“绑定”