添加参数时出现Symfony 2路径错误

时间:2013-04-06 23:59:48

标签: php symfony view routing controller

我似乎遇到过Symfony 2的一个问题,我以前没见过(或者更多的是我错过了一些非常明显的东西)。

我有一条没有参数且工作完美的路线,连接到控制器并显示正确的视图。然后我更新了路由以获取如下的单个参数:

# Note routing
    gibbo_dummy_notes_Add:
        pattern:  /notes/add/{notebook}
        defaults: { _controller: GibboDummyBundle:Note:add, notebook: 0}
        requirements:
                _method:  POST|GET

但是,如果我现在尝试访问此路由notes/add/test,则会收到错误The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?。如果我删除参数,它就可以完美地运行notes/add

此设置与我的应用中使用参数的其他路径完全相同。

控制器中的操作肯定会返回响应对象。如果我在操作的顶部放置die('test');并从URL中删除参数,我会到达die语句并看到'test',但是如果我将参数添加到URL它会显示错误,所以它清楚在包含参数时没有到达我的控制器或动作,但据我所知,路由设置正确,并且我没有得到正常路由未定义错误我希望看到网址是否存在问题。

我在开发环境下运行它,我尝试过其他浏览器/清除缓存等。控制器内部的操作NoteController看起来像

public function addAction($notebook)
{

    $pageTitle = 'Note';


    $form = $this->createForm(new NoteType(), null, array(
        'validation_groups' => array('add')
    ));

    $request = $this->getRequest();

    if ($request->isMethod('POST')) {
        $form->bind($request);

        if ($form->isValid()) {

            /** @var $em \Doctrine\ORM\EntityManager */
            $em = $this->getDoctrine()->getManager();

            /** @var $note Note */
            $note = $form->getData();
            $note->setNotebook();

            $em->persist($note);
            $em->flush();

            return $this->redirect($this->generateUrl('gibbo_dummy_note_View'));
        }
    }

    return $this->render('GibboDummyBundle:Note:new.html.twig', array(
        'pageTitle' => $pageTitle,
        'form_add'  => $form->createView(),
        'selected' => 'codebooks'
    ));


}

任何人都可以解释一下我可能做错了什么吗?

1 个答案:

答案 0 :(得分:0)

请添加gibbo_dummy_note_View路线的控制器代码。

最有可能的是,您的重定向最终是一个糟糕的控制器方法 - 没有return语句的方法