FOSUserBundle の登録フォームを別のフォームに統合したいと考えています。これは、エンティティ "Anagrafic" との 1 対多の関係を作成したためです。ここにコード:
AnagraficType.php
->add('utenze', new \FOS\UserBundle\Form\Type\RegistrationFormType($builder))
しかし、エラーを返します。どうすればいいですか?
編集: わかりました..そうすれば問題は解決します..:
->add('utenze', new \My\UserBundle\Form\Type\RegistrationFormType('\My\UserBundle\Entity\User'))
しかし、私はこのエラーが発生します:
The form's view data is expected to be an instance of class \My\UserBundle\Entity\User,
but is an instance of class Doctrine\Common\Collections\ArrayCollection.
You can avoid this error by setting the "data_class" option to null or by adding a view
transformer that transforms an instance of class
Doctrine\Common\Collections\ArrayCollection to an instance of \My\UserBundle\Entity\User.
このエラーが表示されるのはなぜですか? 「data_class」を「null」に設定した場合、Doctrine の利点を利用しないでください。私の関係は次のとおりです。
class Anagrafic
{
//..
/**
* @ORM\OneToMany(targetEntity="My\UserBundle\Entity\User", mappedBy="anagrafic")
*/
private $utenze;
public function __construct()
{
$this->utenze = new \Doctrine\Common\Collections\ArrayCollection();
}
*****
class User extends BaseUser
{
//..
/**
* @ORM\ManyToOne(targetEntity="My\BusinessBundle\Entity\Anagrafic", inversedBy="utenze")
* @ORM\JoinColumn(name="anagrafic_id", referencedColumnName="id")
*/
private $anagrafic;
どうしたの?