我正在尝试使用Symfony路由系统在导航菜单中生成与环境无关的链接。我在routing.yml
中有以下路线:
# Navigation menu rules
sample:
class: sfDoctrineRouteCollection
options: { model: Sample }
# Default rules (catch all)
homepage:
url: /
param: { module: sample, action: index }
default_index:
url: /:module
param: { action: index }
default:
url: /:module/:action/*
在导航菜单中,我对link_to
辅助方法进行了以下调用,根据实际部分进行了自定义:
<?php
...
if ( $actualSection === 'sample' )
echo link_to('Sample', 'sample', array('class' => 'actualSection'));
else
echo link_to('Sample', 'sample');
...
?>
问题是link_to
正在生成如下链接:
<a href="/sample?class=actualSection">Samples</a>
而不是
<a href="/sample" class="actualSection">Samples</a>
将link_to
辅助方法与路由系统一起使用以生成后一个链接的正确方法是什么?
根据link_to documentation,内部URI应以“模块/动作”格式编写,因此我猜可以省略初始/
。
答案 0 :(得分:4)
你的第二个论点似乎不正确。要么输入路径的名称,前缀为'@'(如@sample_index
或sfDoctrineCollection生成的任何路径),要么使用“module / action format”=&gt; sample/index
。
答案 1 :(得分:2)
尝试这样的事情:
echo link_to('Sample', 'sample', array(), array('class' => 'actualSection'));
第一个数组 - 路由选项,第二个 - html属性