我如何可以在Symfony2路由中有可选参数
我有这个代码如下:
/** * Lists all User entities. * * @Route("/{cid}",defaults={"cid" = null},name="user") * @Template() */ public function indexAction($cid=null) {}
现在,如果我键入site/user/1
然后它的作品,但如果我键入site/user/
它说:
No route found
我怎样才能让这两条路线工作?
尝试去site/user
(注意结束时没有反斜杠)。
一般来说,它应该工作,我有相对类似的configuration工作。
但是,如果一切都失败了,你总是可以定义多个路由相同的行动,即
/** * Lists all User entities. * * @Route("/", name="user_no_cid") * @Route("/{cid}", name="user") * @Template() */ public function indexAction($cid=null) {
使用yml文件进行路由configuration,并在路由参数中为id添加默认值,如下所示:
user: pattern: /site/user/{id} defaults: { _controller: YourBundle:Default:index, id: 1 }
在这里看文档
你也可以用GET参数来做,例如
/** * @param Request $request * * @return Response */ public function displayDetailAction(Request $request) { if ($courseId = $request->query->get('courseId')) {