2

假设我们的控制器中有表单:

$form = $this->createForm(new OurFormType());

这是OurFormType类的builder方法

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 形式中有类似的东西吗?

4

1 回答 1

1

检查Symfony 2 上的答案 - 如何将数据传递给 formBuilder?让技术使用构造函数将值传递给 FormType 类。

于 2014-02-25T14:14:13.243 回答