如何允许“?” Symfony2中路由参数中的字符?

时间:2014-11-11 11:28:41

标签: symfony parameters routes character yaml

我想知道如何允许“?” Symfony2中路由参数中的字符。这是我的路线(实际上,我关注的路线参数是“messtext”):

ikproj_groupe_sendreply1:
pattern:  /{groupid}/{receiver}/{messtext}/{cible}/sendreply
defaults: { _controller: IkprojGroupeBundle:Messages:SendReply1 }
requirements:
    messtext: .+

事实上,我看了一下这个链接:http://symfony.com/doc/current/cookbook/routing/slash_in_parameter.html,它是关于如何在Symfony2中的路由参数中允许“/”字符。我完成了从该教程中学到的内容,但问题是它不起作用:Symfony2仍然显示以下错误消息: 找不到“GET / groupe / sendreply / 11/28 / hello,%20dear%20sir ... can%20I%20join%20your%20group”的路线

所以,我的问题是:上面的代码有什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:0)

路线中只有一个参数可以接受'/'字符。这必须是最后一个,因为后面的每一个都被认为是param值的一部分......在你的情况下,Symfony路由从不检测URL的ciblesendreply部分。

尝试将messtext param放在网址的最后:

ikproj_groupe_sendreply1:
pattern:  /{groupid}/{receiver}/{cible}/sendreply/{messtext}
defaults: { _controller: IkprojGroupeBundle:Messages:SendReply1 }
requirements:
    messtext: .+