0

我想用 Symfony 和 Twig 创建一个“最后访问的页面”列表。

为此,我编写了一个历史服务来保存会话中最后访问的路线。

但是我只有路由名称,没有用户体验的别名。

所以路线country_info应该包含一个像“国家信息”这样的字符串。是否可以在 中定义别名routing.yml

4

1 回答 1

1

不,不可能在routing.yml. 路由系统并不打算这样做。

如果您有固定数量的页面,您可以只读取控制器中的会话值并翻译每个路由名称,以便稍后使用 Twig 打印它。

假设您将上次访问的页面路由存储在数组中,您可以尝试以下操作:

在您的控制器操作中:

// Read session 
$page_routes = $session->get('last_visited_routes_array');

$output_array=array();

foreach ($page_routes as $route){
  // Translate route to name
  switch($route){
    case "country_info":
      $output_array['country_info'] = "Country Information";
    break;

    // ... Add more Cases here ...  

  }
}

// Return generated array so it can be used by Twig
return array('output_array' => $output_array);

在您的 Twig 模板中:

{% for page_route, page_name in output_array %}
    <a href="{{ path('page_route') }}">{{page_name}}</a>
{% endfor %}

希望能帮助到你。

于 2012-10-14T02:51:48.413 回答