大家好我有Symfony2 FormBuilder的一些問題,實際上,我有一個實體用戶鏈接(OneByOne)實體地址,它似乎很簡單,但當我'米試圖將地址類型表嵌入到用戶類型一:我面臨着這樣的例外:Symfony2:窗體的視圖數據問題
表單的視圖數據有望成爲一流的Acme \包\ AddressBundle \實體\住址的實例,但一個實例類Doctrine \ Common \ Collections \ ArrayCollection。您可以通過將「data_class」選項設置爲null或添加將Doctrine \ Common \ Collections \ ArrayCollection類的實例轉換爲Acme \ Bundle \ AddressBundle \ Entity \ Adresse實例的視圖轉換器來避免此錯誤
我把這裏的一些代碼(減少是可讀的),使我的問題更加understable:
我的用戶類(擴展了FosUserBundle一個人):
class User extends BaseUser
{
...
/**
* @ORM\OneToOne(targetEntity="Acme\bundle\AddressBundle\Entity\Address", cascade={"persist", "remove"})
* @ORM\JoinColumn(nullable=true)
* @Assert\Valid
*/
public $address;
.......
}
臨客d表單類型buildForm功能:
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
// add your custom field
$builder->add('name','text')
->add('address',new AddressType(),array(
'data_class' => 'Acme\Bundle\AddressBundle\Entity\Address'
)
);
}
我的地址表單類型:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('city','text')
->add('title','text');
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\Bundle\AddressBundle\Entity\Address'
));
}
預先感謝您的幫助!
您是否嘗試過在錯誤消息中建議的內容? – cheesemacfly
是的,我試過了,但是當我做這個消息時:spl_object_hash()期望參數1是對象,給出的字符串 –