我想用 Symfony 和 Twig 创建一个“最后访问的页面”列表。
为此,我编写了一个历史服务来保存会话中最后访问的路线。
但是我只有路由名称,没有用户体验的别名。
所以路线country_info
应该包含一个像“国家信息”这样的字符串。是否可以在 中定义别名routing.yml
?
我想用 Symfony 和 Twig 创建一个“最后访问的页面”列表。
为此,我编写了一个历史服务来保存会话中最后访问的路线。
但是我只有路由名称,没有用户体验的别名。
所以路线country_info
应该包含一个像“国家信息”这样的字符串。是否可以在 中定义别名routing.yml
?
不,不可能在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 %}
希望能帮助到你。