0

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 はデフォルトで「イディテム」フィールドになります。私のパーシャルがレンダリングされないように、「トークン」フィールドの。

2 番目のルートの名前を別の名前に変更 (または削除) すると、トークン化された URL が機能することがわかりました。しかし、通常の URL はそうではありません。

これは、クラス ファイルで変更する必要があるものですか?

ここに私の参照があります。 Symfony ドキュメンテーション

4

1 に答える 1

0

私は実際にそれを理解しました。ルートの最初のセットの「sfDoctrineCollection」は「car_show」ルートを作成していたので、そこに入れたものはそれを上書きしていました。私がしたことは、2 番目のルートの名前を別の名前に変更しただけで、うまくいきました。

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 に答える