我在Symfony的路由方面遇到了一个小问题。
这是我的控制器动作:
/**
* @Route("/admin/pricelist/list/{year}/{week}", name="pricelist_list")
*/
public function getPricelistAction(Request $request, $year = 0, $week = 0)
{
$entityManager = $this->getDoctrine()->getManager();
if ($year === 0) {
$year = (int)date('Y');
}
if ($week === 0) {
$week = (int)date('W');
}
$start = new \DateTimeImmutable($year . '-1-1');
$stop = $start->modify('+1 year');
// ... I return the week and year to my twig
}
现在,在我的树枝上,我有以下内容:
<div>
<div class="form-group">
<label>Year</label>
<select class="form-control" id="yearSelection">
{% for y in (year-3)..(year+3) %}
<option {% if y == year %}selected="selected"{% endif %}
data-url="{{ path('pricelist_list', {'year': y, 'week': week}) }}">
{{ y }}
</option>
{% endfor %}
</select>
</div>
<div class="form-group">
<label>Week</label>
<select class="form-control" id="weekSelection">
{% for key, w in weeks %}
<option {% if w == week %}selected="selected"{% endif %}
data-url="{{ url('pricelist_list', {'year': year, 'week': w}) }}">
{{ w }}
</option>
{% endfor %}
</select>
</div>
</div>
但是当我选择一年或一周时,它并没有像我的路由中所建议的那样引导我访问网址admin/pricelist/list/{{year}}/{{week}}
,而是:admin/pricelist/list?year=2015&week=8
。
我真的不知道自己做错了什么,因为其他网页上的其他功能都是以这种方式正确处理路由。
有人能指出我正确的方向吗?
答案 0 :(得分:2)
使用以下代码调试您的路线:php app/console router:debug
然后你会看到 pricelist_list 不接受任何参数。
突然出现在我脑海中的可能原因: