fre*_*dev 4 php url yaml routes symfony
我有这个路由文件:
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
Run Code Online (Sandbox Code Playgroud)
现在,当我想继续到indexRechercheZones路线中,出现错误:
在MySpaceGestion中呈现模板时已引发异常(路由“ modifierZones”的“参数” nom”必须与“ [^ /] ++”(给定的““”相匹配才能生成相应的URL。”)。第71行的sBundle:...:indexZonesTechniques.html.twig。
在我的细枝线71中,我有以下代码:
<a href="{{ path('modifierZones', {'nom': zonetechnique.nom}) }}"><button class="btn btn-warning btn-xs">Modifier</button></a>
Run Code Online (Sandbox Code Playgroud)
我认为这是一个正则表达式问题,是symfony的url编写规则问题,但我不知道如何解决此错误。我尝试了一些类似在路线中添加此行的操作:
indexRechercheZones:
path: /gestionzonestechniques/
defaults: { _controller: MySpaceGestionEquipementsTechniquesBundle:GestionZonesTechniques:indexZonesTechnique }
requirements:
nom: \d+
methods: GET
Run Code Online (Sandbox Code Playgroud)
或按要求这样:
requirements:
nom: '[a-zA-Z0-9-_\/-\s.^]+'
Run Code Online (Sandbox Code Playgroud)
但这不匹配。有人可以帮忙吗?
谢谢...
小智 6
就像@Coussinsky所说的那样,values您的field“ nom”中的一些在数据库中为空。
您可以根据需要将此参数设置为null,或仅更改数据库中的空值。