コントローラーにフォームがあるとします。
$form = $this->createForm(new OurFormType());
ここに OurFormType クラスのビルダーメソッドがあります
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('list','choice')
->add('agency','text')
->add('type','hidden');
}
data_class はなく、エンティティはまったく使用されていません。他の方法を使用してデータをフォームに渡すことができます。私たちが興味を持っているのは、選択タイプを持つリストフィールドです。このタイプは、symfony 2 フォームで選択リストを作成するために使用されます。
ここで、タスクに到達しました。そして、タスクは、そのリストにコントローラーに入るデータを入力することです。連想配列だとします。したがって、変更したコントローラー アクションを提供できます。
$listData = array('key1'=>'val1', 'key2' => 'val2');
$form = $this->createForm(new OurFormType());
return $this->render('UMDOurBundle:Test:index.html.twig',
array(
'form' => $form->createView()
));
オブジェクトを $form 変数に渡した後、その配列をコントローラーのリスト フィールドに挿入する必要があります。何かのようなもの
$form->get('list',array('choices'=>$listData));
symfony 2フォームにそのようなものはありますか?