Symfony2允许空路由参数"必须匹配^ / ++(给定)以生成相应的URL"

时间:2016-12-12 10:28:27

标签: php symfony parameters routes

如何允许空路由参数?

如果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 = '') 

感谢

1 个答案:

答案 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 = '') 

然后,当您想通过控制器中的路由时,请确保您通过了正确的路由。