0
我想收集表格。我的磚形的定義如下:如何在Symfony2中爲表單集合正確設置'data_class'?
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,
));
}
}
在控制器I構建這種形式,如:
$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的實例,但是是類ACPI \ AppBundle \ Entity \ Caisse類的一個實例。 ACME \ AppBundle \ Entity \ Caisse。可以通過 避免這種錯誤設置「data_class」選項 「ACME \ AppBundleBundle \實體\儲蓄銀行」或通過添加視圖 變壓器該變換類 ACME \ AppBundleBundle \實體\儲蓄銀行的實例,以標量,數組或\ 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'
))
我該怎麼辦?請幫忙。
多麼愚蠢的我 – VladRia