私はこれらの機能(attach/merge feature)で驚いています。Doctrine2:ManyToManyアソシエーションのデタッチ/マージ
私の必要性は簡単です、私はBook
のコレクションをフィルタリングするBookFilterType
を持っています。
今まで
public function indexAction()
{
$book = new Book($this->getUser());
$filters = $this->getFilters();
$form = $this->createForm(new BookFilterType(), $filters);
...
return array(...);
}
を行うとき、私はエラーました:フィルターに彼らは他のエンティティであったためEntities passed to the choice field must be managed
を。
基本的に、私はセッションでフィルタの基準を保存するときにIDだけを保存し、find($id)
を使用して再水和する必要がありました。
これは醜いですし、私のコードは読めなくなります!
私はdetach/merge
機能を使用することに決めました。
Class Doctrine\Common\Collections\ArrayCollection is not a valid entity or mapped super class.
QUESTION:
iの形で値を再注入するために、再度、それらをマージしたい切り離さエンティティを格納した後、私が得るので、私は私のオブジェクトにcascade={"merge"}
を使用する必要があると思われます(最終的に)
はどこcascade={"merge"}
を入れてください:joinColumns
OR inverseJoinColumns
では?または両方 ? ?私はこれらのフィルタ
/**
* @ORM\ManyToMany(targetEntity="MyTargetedEntity")
* @ORM\JoinTable(name="target_entity_nn",
* joinColumns={@ORM\JoinColumn(name="some_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="other_id", referencedColumnName="id")}
* )
*
**/
private $contributors;
PSでのみManyToMany
関連を持っている原因:私はSymfony2.1
/Doctrine master
を使用しています。
おかげ