Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从控制器操作批注获取symfony路由_Symfony - Fatal编程技术网

从控制器操作批注获取symfony路由

从控制器操作批注获取symfony路由,symfony,Symfony,我有一个控制器动作如下: /** * @Route("/post/delete/{id}", name="delete_post_modal") */ public function deleteAction(Post $post) { // ... } 当路由匹配delete\u post\u model时,注释@Route告诉symfony执行方法deleteAction。 所有这些都很好 问题:是否有一种方法可以反转此功能并从方法名获取路由名 根据上面的例子: 我有:Post

我有一个控制器动作如下:

/**
 * @Route("/post/delete/{id}", name="delete_post_modal")
 */
public function deleteAction(Post $post)
{
    // ...
}
当路由匹配delete\u post\u model时,注释@Route告诉symfony执行方法deleteAction。 所有这些都很好

问题:是否有一种方法可以反转此功能并从方法名获取路由名

根据上面的例子:

我有:PostController::deleteAction或self::deleteAction 我需要获取:delete\u post\u modal 谢谢

试试这个

更新

试试这个

更新


我是一个在内部使用symfony的laravel用户,我认为有一个名为Request的类可以用来获取路径信息。有一个控制台命令通过url:router:match匹配route_name,希望能对您有所帮助。我是一个在内部使用symfony的laravel用户,我认为有一个名为Request的类可以用来获取路径信息。有一个控制台命令通过url:router:match匹配route_name,希望能对您有所帮助。这将有助于获取当前请求的路由,但我需要更通用的方法,通过了解控制器和方法名来生成路由名称。这将有助于获取当前请求的路由,但我需要更通用的方法,通过了解控制器和方法名来生成路由名称。
 $router = $this->container->get('router');

foreach ($router->getRouteCollection()->all() as $route => $params)
{
    $defaults = $params->getDefaults();

    if ( strpos($defaults['_controller'],'PostController::deleteAction') ) {
        $myroute = $route;
        break;
    }
}