典型的なSymfony2フォームでは、フィールドが無効な場合、フォームはすべてのフィールドが再入力され、問題のある特定のフィールドでエラーが発生した状態でユーザーに再度表示されます。
私のフォームでは、(セキュリティ上の理由から)1つのフィールドの値をユーザーに再入力させたいのですが、残りのフィールドは入力したままにしておきます。SF2のコントローラーからフィールド値を設定解除/クリアする方法はありますか?
典型的なSymfony2フォームでは、フィールドが無効な場合、フォームはすべてのフィールドが再入力され、問題のある特定のフィールドでエラーが発生した状態でユーザーに再度表示されます。
私のフォームでは、(セキュリティ上の理由から)1つのフィールドの値をユーザーに再入力させたいのですが、残りのフィールドは入力したままにしておきます。SF2のコントローラーからフィールド値を設定解除/クリアする方法はありますか?
以下の回答に示すようにオブジェクトの値を変更した後、フォームを再度作成し、オブジェクトをフォームに渡す必要があります...
$form = $this->createForm(new YourFormType(), $object);
return $this->render('YourBundle:YourEntityName:yourTemplate.html.twig, (array(
'entity'=>$entity,
'form'=>$form->createView()
));
null
モデルオブジェクト自体で、または空の値が何であれ、それを設定するだけです。
if ($form->isValid()) {
// ...
} else {
$object->setSomeField(null);
}