Symfony:从模块/操作获取路由名称

时间:2012-12-11 12:36:03

标签: php symfony-1.4

routing.yml

Login:
  url:   /login
  param: { module: access, action: login }

然后我有:

$module = 'access';
$action = 'login';

我想获取路由名称? //登录

getRoutingName($module, $action)之类的内容会返回"login"

2 个答案:

答案 0 :(得分:4)

您要找的是几乎 getRouteThatMatchesParameters。它找到了一些参数的路径(模块,动作和查询字符串)。

这是一个从模块中检索路线名称的快速代码段。行动名称:

$routes = $this->getContext()->getRouting()->getRoutes();
foreach ($routes as $name => $route)
{
  if ($route->matchesParameters(array('module' => 'access', 'action' => 'login'), $this->getContext()))
  {
    var_export($name);
    break;
  }
}

小心点。我放break因为它可以检索多个路由(例如它通常会返回默认路由(通常是/:module/:action/*))。

答案 1 :(得分:-3)

$currentRoute = $this->getContext()->getRouting()->getCurrentInternalUri(false);