我有以下问题。我想创建一个适用于两个实体的表单。我有以下实体:第一实体是用户实体,它与第二实体关系连接(列bip与实体“BIP”相关)。 现在我有以下代码:
BIPType.php:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'AppBundle\Entity\Bip',
);
}
和UserType.php:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$biptype = new BIPType();
$builder->add('bip', $biptype);
}
public function getParent()
{
return 'FOS\UserBundle\Form\Type\RegistrationFormType';
// Or for Symfony < 2.8
// return 'fos_user_registration';
}
public function getBlockPrefix()
{
return 'app_user_registration';
}
// For Symfony 2.x
public function getName()
{
return $this->getBlockPrefix();
}
不幸的是,错误发生了
捕获致命错误:传递给UserBundle \ Entity \ User :: setBip()的参数1必须是AppBundle \ Entity \ Bip的实例,给定数组,在/ home / spake / php / gryf / vendor / symfony /中调用第556行的symfony / src / Symfony / Component / PropertyAccess / PropertyAccessor.php并定义了
怎么做,我的朋友们?谢谢你的建议。
答案 0 :(得分:1)
您需要声明该Form Class的Entity类:
$builder->add('bip', new BipType(), array(
'data_class' => 'namespace/to/BipEntity'
));