Symfony2"参数""路线""必须匹配" [^ /] ++" (""给出)生成相应的URL。"

时间:2015-02-11 12:47:16

标签: php symfony url routes yaml

我有路线文件:

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"用于路由"修饰区"必须匹配" [^ /] ++"(""   给)生成相应的URL。")in   MySpaceGestion ... sBundle:...:indexZonesTechniques.html.twig   在第71行。

在我的第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.^]+'

但它不匹配。有人可以帮忙吗?

谢谢...

1 个答案:

答案 0 :(得分:5)

就像@Coussinsky所说,你的values“nom”的一些field在你的数据库中是空的。

如果您愿意,可以将此参数设为null,或者更改数据库中的空值。