如何允许空路由参数?
如果name为空,则抛出错误 参数"名称" for route" article_test"必须匹配" [^ /] ++" (""给出)生成相应的URL。
我的控制器:
/**
* @param \AppBundle\Entity\Aritcle $article
* @param string $name
* @param string $orderNumber
* @Route("/{id}/test/{name}/{orderNumber}", name="article_test",
* defaults={"name"=null, "orderNumber"=null})
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function testAction(Aritcle $article, $name = '', $orderNumber = '')
感谢
答案 0 :(得分:0)
实际上有一种方法可以跳过此错误,您可以像这样通过多种方法到达一个方法:
/**
* @param \AppBundle\Entity\Aritcle $article
* @param string $name
* @param string $orderNumber
* @Route("/{id}/test/{name}/{orderNumber}", name="article_test",
* @Route("/{id}/test/{name}", name="article_test_name",
* @Route("/{id}/test/{orderNumber}", name="article_test_orderNumber",
* defaults={"name"=null, "orderNumber"=null})
* @return \Symfony\Component\HttpFoundation\RedirectResponse
*/
public function testAction(Aritcle $article, $name = '', $orderNumber = '')
然后,当您想通过控制器中的路由时,请确保您通过了正确的路由。