Ubuntu 9.10 で Symfony 1.3.2 と Propel ORM を使用しています。
AJAX を使用して、選択した国の都市を選択ウィジェットに動的に入力するフォームを開発しました。
フォームに入力されたデータが保存される前に、フォームを検証します。検証が失敗した場合、修正のためにフォームがユーザーに返されます。ただし、国リストは動的に生成されるため、修正のために表示されるフォームには有効な都市が選択されていません (国ウィジェットがまだ変更されていないため、空です)。
これは、ユーザーが別の国を選択し (変更イベントが発生する)、選択した元の国に戻り、最後に最後に選択した都市を選択する必要があることを意味するため、ユーザーにとって不便です。
別の (おそらく無関係の) フィールドが検証されなかったため、このすべてがユーザーに強制されます。
$form->getValue('widget_name') を $form->bind() の直後に呼び出してみましたが、どうやら (実際、IIRC、フォームの検証に失敗した場合、すべての値が null にリセットされます) - そうです。うまくいかない。
私は現在、$_POST を介して入力 (つまり、汚染された) データに直接アクセスし、それらをフラッシュ変数に設定するという厄介なハックを試みていますが、非常に厄介なハックだと感じています)
私がやろうとしているのは、一般的なユース ケース シナリオです。$_POST などでハッキングするよりも、これを行うためのより良い方法はありますか?