1

私のエンティティは次のようになります(関連する部分だけを貼り付けます):

User.php

    /**
     * @ManyToMany(targetEntity="Startup", inversedBy="members", cascade={"persist"})
     * @OrderBy({"name"="ASC"})
     * @var Startup[]
     */
    private $startups;

    public function __construct($data = array()) 
    {
        $this->startups = new ArrayCollection();
        $this->joined = new DateTime("now");
        parent::__construct($data);
    }

Startup.php

    /**
     * @ManyToOne(targetEntity="User", cascade={"persist"})
     * @var User
     */
    private $founder = null;

    /**
     * @ManyToMany(targetEntity="User", mappedBy="startups", cascade={"persist"})
     * @OrderBy({"lastName" = "ASC"})
     * @var User[]
     */
    private $members;

    public function __construct($data = array())
    {
        $this->files = new ArrayCollection();
        $this->topics = new ArrayCollection();
        $this->members = new ArrayCollection();

        $this->founded = new DateTime("now");

        parent::__construct($data);
    }

今、私はこのコードを実行しています($ this-> identity instanceof User、$ valuesは文字列で満たされた構造体であり、$ this-> modelはEntityManagerです):

          $startup = new Startup();
          $startup->name = $values->name;
          $startup->founder = $this->identity;
          $this->model->persist($startup);
          $this->identity->startups[] = $startup;
          $this->model->flush();

そして私はこれを手に入れます:

Doctrine \ ORM \ UnitOfWork :: getCollectionPersister()に渡される引数1は、配列である必要があり、nullが指定され、332行目の... / libs / Doctrine / ORM / UnitOfWork.phpで呼び出され、定義されている必要があります。

明らかにフラッシュでトリガーされます。何が間違っているのですか?

4

1 に答える 1

1

修理済み。$this->identity問題でした。Frameworkは、シリアル化してから非シリアル化しました。

于 2013-01-07T22:44:15.210 に答える