我在数据库中有一个slug字段,该字段是从包含&
的名称创建的:
name: Hansel & Gretel
slug: hansel-&-gretel
Doctrine从名称中删除不符合网址的字符。好吧,&
绝对是网友友好的。
现在,当我使用symfony link_to()
生成童话故事的链接时,我得到了:
http://myfairytalesite.ft/tale/hansel-%26amp%3B-gretel
因此,在&
获取url编码之前,它会变为HTML实体。
当我导航到这个URL时,我得到404错误,因为slug仅被url解码,并且路由(sfDoctrineRoute)试图找到一个具有slug hansel-&-gretel
的对象,这显然在数据库中不存在。< / p>
我的问题:我该怎么办?
该名称是从外部源导入的,因此我无法手动更改。
我想在我使用slug的动作中添加一个html_entities_decode
,但感觉就像将一个机翼连接到带有管道胶带的飞机......
我甚至试图深入研究Symfony的内部,看看我能在那里改变什么,我走得很深,我害怕我要唤醒Balrog但却找不到任何有趣的东西。 :/
有没有人有类似的问题?它可能是Sf或Doctrine的错误吗?
答案 0 :(得分:0)
为了避免这个问题,我更换任何&amp;符号以及&amp;放大器;用“和”来保存我的slu ..
E.g。
hansel-and-gretel