0

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;

どうしたの?

4

1 に答える 1

0

わかりました、私は解決策を見つけました。

->add('utenze', 'collection', array('type' => new \My\UserBundle\Form\Type\RegistrationFormType('\My\UserBundle\Entity\User')))

それ以外の

->add('utenze', new \My\UserBundle\Form\Type\RegistrationFormType('\My\UserBundle\Entity\User'))
于 2013-02-11T02:59:05.680 に答える