我想用Symfony和Twig创建一个“最后访问过的页面”列表。
为此,我写了一个历史服务,它保存了会话中最后访问过的路线。
但我的路由名称只是用户体验的别名。
因此路由country_info
应该包含类似“国家/地区信息”的字符串。
是否可以在routing.yml
?
答案 0 :(得分:1)
不,在routing.yml
中无法定义路由别名。路由系统并不意味着这样做。
如果您有固定数量的页面,您只需读取Controller中的会话值并翻译每个路径名称,以便稍后使用Twig打印。
假设您将最后访问过的页面路由存储在一个数组中,您可以尝试以下操作:
在您的Controller操作中:
// 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 %}
希望它有所帮助。