如何在一个Symfony路由中制作多个图案?
通常我们有一个路由,
blog:
pattern: /
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
是否可以有两种路由模式?
事
blog:
#Below pattern to match with '/' or '/index'
pattern: {/ , /index}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
5条答案
按热度按时间af7jpaap1#
你在用Symfony 2吗?如果你可以使用annotation来代替yml或xml,那么你可以沿着这些行定义多个路由:
那么你就不需要重复这个操作方法了。
jutyujz02#
最简单的方法是复制块,使2路线。
所以如果你需要的话,你可以在你的道路上使用这两种方法。
Here你可以看另一篇关于如何在路由中使用正则表达式的文章。也许你可以写一个简单的正则表达式,检查是否设置了index。
编辑:
如果你使用annotation(我更喜欢),那么你可以在Controller的Action方法上编写多个路由。类似于这样:
xoefb8l83#
使用YAML路由时,还可以使用节点锚表达式语法引用现有路由定义。
&
指定锚的第一次出现,*
指定要引用的锚,<<
告诉Symfony yaml解析器合并指定的节点。或者,可以在管线属性值上使用锚点。
但是,为了防止由于重复内容而导致的不良SEO,建议使用redirect。
jmp7cifd4#
再加上约翰的回答:
我经常使用FOSJsoftingBundle:
这样我就有了一个方法和两条路线。
请记住设置默认的$id值:
dsekswqp5#
自Symfony 5.2使用属性: