如何正确设置' data_class'用于Symfony2中的表单集合?

时间:2015-11-24 11:23:41

标签: php forms symfony

我想要一组表格。我的砖形式定义如下:

class ImportPaymentsType extends AbstractType
{
    public function getName()
    {
        return 'import_payments_type';
    }

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('caisse', 'entity', array(
            'label' => null,
            'class' => 'ACME\AppBundle\Entity\Caisse',
            'property' => 'name',
            'empty_value' => 'Choose an option',
        ))
        ->add('label', 'text', array(
            'label' => null,
        ))
        ->add('credit', 'number', array(
            'label' => null,
        ));
    }
}

在控制器中我构造了这样的形式:

    $data = array(
        'imports' =>
            array(
                'caisse' => $em->getRepository('ACMEAppBundle:Caisse')->findOneByCode('P6015C'),
                'label' => null,
                'credit' => null,
            )
    );

    $importForm = $this->createFormBuilder($data)
        ->add('imports', 'collection', array(
            'type' => new ImportPaymentsType(),
        ))->getForm();

我得到的错误是:

  

表单的视图数据应该是标量,数组或类型   \ ArrayAccess的实例,但是是类的实例   ACME \的appbundle \实体\储蓄银行。你可以避免这个错误   设置" data_class"选项   " ACME \ AppBundleBundle \实体\储蓄银行"或者通过添加视图   转换类实例的转换器   ACME \ AppBundleBundle \ Entity \ Caisse标量,数组或实例   \ ArrayAccess。

我尝试更改ImportPaymentsType但它没有工作:

    ->add('caisse', 'entity', array(
        'label' => null,
        'class' => 'ACME\AppBundle\Entity\Caisse',
        'property' => 'description',
        'empty_value' => 'Choose an option',

        'data_class' => 'ACME\AppBundle\Entity\Caisse'

    ))

我该怎么办?请帮忙。

1 个答案:

答案 0 :(得分:3)

bin/hadoop jar contrib/hadoop-streaming-2.6.0.jar \ -file ${HADOOP_HOME}/py_mapred/mapper.py -mapper '/usr/bin/python mapper.py' -file ${HADOOP_HOME}/py_mapred/reducer.py -reducer '/usr/bin/python reducer.py' -input /input/davinci/* -output /input/davinci-output 应该是一个数组数组。

尝试:

'imports'