通过Symfony文档,我找到了一种方法来保护带有“令牌”字段的表单。我正在尝试实现它,并且表单生成一个令牌,但它没有将它传递到“showSuccess.php”页面的URL,所以它现在显示我的_admin.php部分。
我认为它与路由有关,但我的路由与它们相同,但仍然不起作用。
car:
class: sfDoctrineRouteCollection
options: { model: car, column: token }
requirements: { token: \w+ }
car_show:
url: /car/:iditem.:sf_format
class: sfDoctrineRoute
options: { model: car, type: object }
param: { module: car, action: show, sf_format: html }
requirements: { iditem: \d+, sf_method: get }
现在表单本身需要URL中的令牌字段,但是当我提交表单时,它应该将“标记化的URL”传递给成功页面,以便可以显示部分,但URL默认为“iditem” “字段而不是”标记“字段,因此我的部分不会呈现。
我发现如果我将第二条路线的名称改为其他东西(或删除它),那么标记化的URL就可以了。但是常规URL没有。
这是我需要在类文件中更改的内容吗?
这是我的参考。 Symfony Documentation
答案 0 :(得分:0)
我实际上已经明白了。第一组路线的“sfDoctrineCollection”正在创建一个“car_show”路线,所以我放在那里的路线覆盖了它。我所做的只是将第二条路线的名称更改为不同的名称并且有效。
car:
class: sfDoctrineRouteCollection
options: { model: car, column: token }
requirements: { token: \w+ }
car_show_id:
url: /car/:iditem.:sf_format
class: sfDoctrineRoute
options: { model: car, type: object }
param: { module: car, action: show, sf_format: html }
requirements: { iditem: \d+, sf_method: get }
我只需更新所有链接中对旧路线的所有引用。