从控制器操作批注获取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;
}
}