2011-07-18 10 views
0
$twoform = new TwoForm; 

$this->embedForm('twoform', $twoform); 

if($value == false) { 
    // unembedForm twoform HOW? 
} 

どうすれば$value == falseのフォームtwoformが送信されず、データベースに追加されないのですか?フォームが送信されているので、未設定のフィールドは機能しませんが、値はNULLです。symfonyにフォームをアンインストールする方法は?

+0

どのようにデータをデータベースに挿入しますか?私の解決策は私が思うこれを修正しません – Benoit

答えて

0

あなたが未設定のフォーム

unset($this->widgetSchema['twoForm']); unset($this->validatorSchema['twoForm']); unset($this->formFieldSchema['twoForm']);

にこれを行うことができます。しかし、これは、それは以前に見えたCASでフォームを投稿避けられないだろう。 validatorを置き換えて、ポストされた値を無視することができます。 $this->setValidator('twoForm', new sfValidatorPass());

与えexempleが完了している場合は、より良いは$値場合、フォームを埋め込むこと私見ではありません== falseを

データベースの挿入が(sfDoctrineForm?)あなたのデータは、それに保存されている方法によって異なり

0

私はあなただけのフォームbindメソッドをオーバーライドする必要があると思う:

ここでは$値は、フォームオプション(の$ this - を使う> getOptionコマンド(「OPTION_NAME」)この場合)またはポストクエリから何らかの値(かもしれ
public function bind(array $taintedValues = null, array $taintedFiles = null) { 
    if ($value) { 
    unset($this['twoForm']); // UNSET embedded form 
    } 
    parent::bind($taintedValues, $taintedFiles); 
} 

すなわち$汚染された値['widget_name'])。

関連する問題