如何在 Symfony2 路由中使用可选参数?

2022-08-30 10:58:24

我在下面有这个代码:

/**
 * Lists all User entities.
 *
 * @Route("/{cid}",defaults={"cid" = null},name="user")
 * @Template()
 */
public function indexAction($cid=null)
{}

现在,如果我键入,那么它就可以工作,但是如果我键入它,它会说:site/user/1site/user/

No route found

我怎样才能让两条路线都有效?


答案 1

尝试转到(注意末尾没有反斜杠)。site/user

一般来说它应该工作,我有相对相似的配置工作。

但是,如果所有其他方法都失败了,您始终可以为同一操作定义多个路由,即

/**
 * Lists all User entities.
 *
 * @Route("/", name="user_no_cid")
 * @Route("/{cid}", name="user")
 * @Template()
 */
public function indexAction($cid=null)
{

答案 2

将 yml 文件用于路由配置,并在路由参数中添加 id 的默认值,如下所示:

user:
  pattern:   /site/user/{id}
  defaults:  { _controller: YourBundle:Default:index, id: 1 }

在此处查看文档


推荐