我搜索了更多时间来查找如何通过传递URL但未找到我预期的答案来获取控制器方法名称。我想创建一个方法,我将传递一个URL,它将给出相应的控制器操作,如下所示,但我无法弄清楚。
我找到了一个帮助器,它只返回当前网址的Route::currentRouteAction()
如果我的应用中的路线与Route::get('/abc', 'YourController@method')
一样生成网址http://example.com/abc
那么如何通过传递YourController@method
http://example.com/abc
function getAction($url){
//what will be logic?
// return like App\Controllers\MyController@method
}
我必须制作一个自定义权限系统,我需要它来显示并通过检查每个菜单的URL来隐藏菜单。
答案 0 :(得分:0)
在您的控制器中,您可以执行以下操作:
map
答案 1 :(得分:0)
如果您愿意,可以尝试:
Route::get('/the/url', 'YourController@method');
每次调用路径中的URL时,都会调用您的方法。 您不需要导航到该网址来调用您的方法,可以通过表单操作或按钮操作调用它,然后执行您的方法。
编辑:
url是你的url作为参数(普通路由) 导入这个:
use Illuminate\Routing\Route;
这是你的功能:
public function method(Route $route, $url)
{
$routes = \Route::getRoutes()->getRoutes();
foreach($routes as $r){
if($r->getUri() == $url){
$youraction= $r->getActionName();
dd($youraction);
}
else{
dd('does not exist');
}
}
}
测试。