我有一个routes文件:
indexRechercheZones:
path: /gestionzonestechniques
defaults: { _controller: MySpaceGestionEquipementsTechniquesBundle:GestionZonesTechniques:indexZonesTechnique }
requirements:
methods: GET
modifierZones:
path: /gestionzonestechniques/modifier/{nom}
defaults: { _controller: MySpaceGestionEquipementsTechniquesBundle:GestionZonesTechniques:modifierZonesTechnique }
requirements:
methods: GET
modifierZones_process:
path: /gestionzonestechniques/modifier/process/{nom}
defaults: { _controller: MySpaceGestionEquipementsTechniquesBundle:GestionZonesTechniques:modifierZonesTechnique }
requirements:
methods: POST
现在当我想继续indexRechercheZones
路由时,出现错误:
在呈现模板期间引发异常(“参数“nom”for route“modifierZones”必须匹配“[^/]++”(“”given)以生成相应的URL。”)在MySpaceGestion。..sBundle:...:indexZonesTechniques.html.twig在第71行。
在我的wig第71行中,我有这个代码:
<a href="{{ path('modifierZones', {'nom': zonetechnique.nom}) }}"><button class="btn btn-warning btn-xs">Modifier</button></a>
我认为这是一个正则表达式的问题,symfony的url编写规则的问题,但我不知道如何修复这个错误。我尝试了一些东西,比如在我的路线中添加这条线:
indexRechercheZones:
path: /gestionzonestechniques/
defaults: { _controller: MySpaceGestionEquipementsTechniquesBundle:GestionZonesTechniques:indexZonesTechnique }
requirements:
nom: \d+
methods: GET
或者像这样的要求:
requirements:
nom: '[a-zA-Z0-9-_\/-\s.^]+'
但它不匹配。有人能帮忙吗
谢谢...
2条答案
按热度按时间ltqd579y1#
就像@Coussinsky说的,数据库中的一些
values
“nom”是空的。如果需要,可以将此参数设置为
null
,或者只是更改数据库上的空值。2exbekwf2#
我更喜欢使用注解而不是。YML
是的,错误消息告诉$nom值与您的模式'\d +'不匹配。
您需要在生成路由URI之前控制该值,或者将模式更改为'。*'