私のエンティティは次のようになります(関連する部分だけを貼り付けます):
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で呼び出され、定義されている必要があります。
明らかにフラッシュでトリガーされます。何が間違っているのですか?