2011-12-31 4 views
0

を削除するアクションのフォーム、の場合:のsymfony 1.4:私は自分の行動に私のフォームを持っている分野

ます$ this->フォーム=新しいSomeForm(の$ this - >データ)。

フォームには複数のフィールドがありますが、1つのアクションには必要ではありませんが、別のアクションに必要なものがあります。これを処理する最善の方法は何ですか?上記のようにインスタンス化するときに、必要性ごとに個別のフォームを作成するか、フィールドを動的に削除しますか?

おかげ

+0

異なるフィールド番号を示す別のアクション、またはデフォルト値の異なるすべてのフィールドを使用して同じフォームを呼び出す必要がありますか? – macgyver

+0

私は異なるアクションによって異なる数のフィールドを表示する予定です – Paul

答えて

0

あなたはマルチパートフォームをしているように聞こえます。

フォームに送信されたすべての値を検証するが、保存しないことを前提とします。

  1. あなたは抽象的なフォームを実行しているようですので、基本オブジェクトフォームを拡張せず、むしろBaseFormを拡張してください。
  2. 値を設定解除しないでください。後で使用する場合でも、フォームを使用して検証してください。
  3. これらはフォームオブジェクトに保存されるので、これを使用して次のアクションに値を渡すことができます。これは便利であり、検証されます。
  4. 保存するフォームのオブジェクトを保存するフォームでdoSave()をオーバーライドします。
0

私の意見では、フォームをそれぞれの必要性に拡張して、設定のオーバーライドによって選択的にunset命令を適用すると、コードを少し読みやすく保守しやすくなります。

関連する問題