Symfony2可选路线

Symfony2可选路线,symfony,routing,Symfony,Routing,正如Symfony Book()所建议的那样,为了创建用于路线的optionar占位符,您只需执行以下操作: participant_list: pattern: /list/{filter}/ defaults: { _controller: ParticipantBundle:Default:list, filter: 1} 并在控制器中定义该变量: public function listAction($filter) { … } public funct

正如Symfony Book()所建议的那样,为了创建用于路线的optionar占位符,您只需执行以下操作:

participant_list:
       pattern:  /list/{filter}/
       defaults: { _controller: ParticipantBundle:Default:list, filter: 1}
并在控制器中定义该变量:

public function listAction($filter) {
…
}
public function listAction($filter = 1) {
  …
}
但是,当我访问mypage.dev/list/时,如果没有参数,它会显示“找不到GET/list/的路由”


你知道怎么做吗?

我不确定,但url必须是mypage.dev/list,末尾没有斜杠,路由应该是

participant_list:
   pattern:  /list/{filter}
   defaults: { _controller: ParticipantBundle:Default:list, filter: 1}

我不确定,但url必须是mypage.dev/list,末尾没有斜杠,路由应该是

participant_list:
   pattern:  /list/{filter}
   defaults: { _controller: ParticipantBundle:Default:list, filter: 1}

尝试在控制器中定义变量的默认值:

public function listAction($filter) {
…
}
public function listAction($filter = 1) {
  …
}

尝试在控制器中定义变量的默认值:

public function listAction($filter) {
…
}
public function listAction($filter = 1) {
  …
}

这很奇怪,因为我做了一些测试,它是有效的。但我不太了解symfony,很抱歉,事实上,你在某些方面是对的。但是,如果我没有把斜杠放在末尾,(在路由中),当我访问/list/(用斜杠)时,它会抛出404,我真的建议你删除结尾的斜杠。如果你用路由器生成你的URL(如文档所示),你不会得到404错误,因为默认生成的URL是/list和call listAction(1)…这很奇怪,因为我做了一些测试,它正在工作。但我不太了解symfony,很抱歉,事实上,你在某些方面是对的。但是,如果我没有把斜杠放在末尾,(在路由中),当我访问/list/(用斜杠)时,它会抛出404,我真的建议你删除结尾的斜杠。如果您使用路由器生成URL(如文档所示),您不会得到404错误,因为默认生成的URL将是/list并调用listAction(1)。。。