我目前有这个页面:
my_homepage:
pattern: /items/{page}
defaults: { _controller: MyBundle:Default:index, page: 1 }
requirements:
page: \d+
所以目前我可以转到http://example.com/items/,它会显示第1页。我可以转到http://example.com/items/1,它也会显示第1页,http://example.com/items/2会显示第2页,等等。
我想保留这种风格的网址。
但我也希望在那里有一个可选参数,以便我可以去:
或者
很明显"危险"和"未分类"取代了新的可选参数(让我们称之为 {type} )。
基本上,原始示例会显示所有内容,而最后2个(使用"危险""未分类")会过滤列表并仅显示某些项目。
所以我的问题是,我在路由器和控制器中做了什么才能在" items"之间设置可选参数。和#34;页码" (如果指定了页码)?
感谢任何想法,谢谢。
答案 0 :(得分:1)
对于两个可选参数,您可以创建路线的别名:
my_homepage:
pattern: /items/{page}
defaults: { _controller: MyBundle:Default:index, page: 1 }
requirements:
page: \d+
my_homepage_with category:
pattern: /items/{category}/{page}
defaults: { _controller: MyBundle:Default:index, page: 1}
requirements:
page: \d+
category: \w+
您的indexAction控制器需要一个可选的类别参数
public function indexAction($page, $category = null)
{
//...