0

routing.yml

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

然后我有:

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

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

类似getRoutingName($module, $action)return的东西"login"

4

2 回答 2

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/*))。

于 2012-12-11T13:35:03.837 回答
-3

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

于 2012-12-11T12:44:22.353 回答