Symfony的路由问题

时间:2015-02-20 11:19:19

标签: php symfony routing

我在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

我真的不知道自己做错了什么,因为其他网页上的其他功能都是以这种方式正确处理路由。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

使用以下代码调试您的路线:php app/console router:debug

然后你会看到 pricelist_list 不接受任何参数。

突然出现在我脑海中的可能原因:

  • 您正在使用YAML配置方法,并且忽略了@Route注释
  • 您正在编辑的控制器不是加载的控制器(例如,另一个文件夹中的备份)