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

时间:2016-04-15 17:36:57

标签: symfony

我有一个像这样的控制器动作:

/**
 * @Route("/post/delete/{id}", name="delete_post_modal")
 */
public function deleteAction(Post $post)
{
    // ...
}

注释@Route告诉symfony在路由匹配deleteAction时执行方法delete_post_modal。 所有这一切都很好。

问题:有没有办法扭转此功能并从方法名称获取路由名称?

从上面的例子中可以看出:

  • 我有:PostController::deleteAction()(或self::deleteAction
  • 我需要:delete_post_modal

谢谢!

1 个答案:

答案 0 :(得分:3)

试试这个

<强>更新

 $router = $this->container->get('router');

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

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