如何定义可选占位符
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何定义可选占位符
为了让事情变得更令人兴奋,添加一个新的路由,显示这个假想的博客应用程序的所有可用博客文章的列表:
- 注释
- YAML
- XML
- PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 15
/ / src / AppBundle /控制器/ BlogController.php/ /……类BlogController扩展控制器{/ /……/ * * *@Route(" /博客”)* /公共函数indexAction(){/ /……}}
到目前为止,这个路由尽可能简单——它不包含占位符,只匹配准确的URL/博客
.但是,如果您需要这个路由来支持分页,那么/博客/ 2
显示博客条目的第二页?更新路由以拥有一个新的{页面}
占位符:
- 注释
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10 11
/ / src / AppBundle /控制器/ BlogController.php/ /……/ * * *@Route(“/博客/{页面}”)* /公共函数indexAction($页面){/ /……}
就像{蛞蝓}
占位符前,值匹配{页面}
将在你的控制器内可用。它的值可用于确定为给定页面显示哪一组博客文章。
但是等一下!由于默认情况下需要占位符,因此此路由将不再简单地匹配/博客
.相反,要查看博客的第1页,您需要使用URL/博客/ 1
!由于这不是富web应用程序的行为方式,修改路由以使{页面}
可选参数。可以通过将其包含在违约
集合:
- 注释
- YAML
- XML
- PHP
1 2 3 4 5 6 7 8 9 10 11
/ / src / AppBundle /控制器/ BlogController.php/ /……/ * * *@Route("/blog/{page}", defaults={"page"=1}) */公共函数indexAction($页面){/ /……}
通过添加页面
到违约
的关键,{页面}
不再需要占位符。URL/博客
将匹配此路由和的值页面
参数将设置为1
.URL/博客/ 2
会不会也相配,给了呢页面
参数a值为2
.完美的。
URL | 路线 | 参数 |
---|---|---|
/博客 |
博客 |
{页面} =1 |
/博客/ 1 |
博客 |
{页面} =1 |
/博客/ 2 |
博客 |
{页面} =2 |
谨慎
当然,你可以有不止一个可选的占位符(例如:页面/博客/{蛞蝓}/ {}
),但是可选占位符之后的所有内容都必须是可选的。例如,/{页面}/博客
是有效路径,但是页面
总是需要的(即简单地/博客
将不匹配此路由)。
提示
带有可选参数的路由将不会与带有斜杠的请求匹配。/博客/
不会匹配,/博客
将匹配)。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。