gre*_*emo 15 regex routing routes symfony
我的路线(slug包含破折号!):
region:
pattern: /regione/{slug}-{id}
defaults: { _controller: SWAItaliaInCifreBundle:Default:region }
Run Code Online (Sandbox Code Playgroud)
在Twig模板中:
{% for r in regions %}
<a href='{{ path('region', { 'slug':r.slug, 'id':r.id }) }}'>{{ r.name }}</a>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我收到关于正则表达式匹配的错误.问题:为什么Symfony2不允许在URL中使用破折号?如何指定我的路线包含短划线(并且它完全没问题)?
在渲染模板期间抛出异常("参数"slug"for route"区域"必须匹配"[^/ - ] +?"(给出"valle-d-aosta-vallee-d-aoste"). ")
Jak*_*las 17
默认情况下禁止斜杠.您可以通过更改默认要求来启用它们.在你的情况下,提供id的要求也很好,因为它用破折号分隔.
见下面的例子.
region:
pattern: /regione/{slug}-{id}
defaults:
_controller: SWAItaliaInCifreBundle:Default:region
requirements:
slug: "[a-zA-Z1-9\-_\/]+"
id: "\d+"
Run Code Online (Sandbox Code Playgroud)
这个正则表达式适合我.(Michael提出的{id}要求)
region:
pattern: /regione/{slug}-{id}
defaults: { _controller: SWAItaliaInCifreBundle:Default:region }
requirements:
slug: "[a-zA-Z0-9-_/]+"
id: "\d+"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14867 次 |
最近记录: |