如何通过在laravel中传递URL来获取控制器操作

时间:2017-01-30 11:14:54

标签: laravel

我搜索了更多时间来查找如何通过传递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来隐藏菜单。

2 个答案:

答案 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');
           }
        }
   }

测试。