0

通过查看 Symfony 文档,我找到了一种方法来保护带有“令牌”字段的表单。我正在尝试实现它并且表单会生成一个令牌,但它不会在 URL 中将它传递给“showSuccess.php”页面,因此它现在显示我的 _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 中的 token 字段,但是当我提交表单时,它应该将“tokenized URL”传递给成功页面,以便显示部分,但 URL 默认为“iditem”字段的“令牌”字段,所以我的部分不呈现。

我发现如果我将第二条路由的名称更改为其他名称(或删除它),那么标记化的 URL 就可以工作。但是,常规 URL 不会。

这是我需要在类文件中更改的内容吗?

这是我的参考。 Symfony 文档

4

1 回答 1

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 }

我只需要更新所有链接中对旧路线的所有引用。

于 2012-07-15T06:27:46.260 回答