ManyToMany 関係のコレクションを介してフォームを保存しようとしていますが、問題はオブジェクトを永続化することです!
class Anagrafica
{
/**
* @ORM\ManyToMany(targetEntity="SubCategories", inversedBy="anagrafiche", cascade={"persist", "remove"})
* @ORM\JoinTable(name="AnCat")
**/
private $subCategories;
//..
public function __construct()
{
$this->subCategories = new \Doctrine\Common\Collections\ArrayCollection();
//..
}
/**
* Add subCategories
*
* @param \My\BusinessBundle\Entity\SubCategories $subCategories
* @return Anagrafica
*/
public function addSubCategory(\My\BusinessBundle\Entity\SubCategories $subCategories)
{
$subCategories->addAnagrafiche($this);
$this->subCategories[] = $subCategories;
}
*******
class SubCategories
{
/**
* @ORM\ManyToMany(targetEntity="Anagrafica", mappedBy="subCategories")
*/
private $anagrafiche;
public function __construct()
{
$this->anagrafiche = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add anagrafiche
*
* @param \My\BusinessBundle\Entity\Anagrafica $anagrafiche
* @return SubCategories
*/
public function addAnagrafiche(\My\BusinessBundle\Entity\Anagrafica $anagrafiche)
{
$this->anagrafiche[] = $anagrafiche;
}
アナグラフィタイプ:
//..
->add('subCategories', 'collection', array('type' => new SubCategoriesType(),
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'prototype_name' => '__categ__',
'by_reference' => false
))
データベースに既に存在するサブカテゴリを選択しても保存すると、クエリ挿入が実行されます。
INSERT INTO SubCategories (subCategory, category_id) VALUES (?, ?)
Parameters: { 1: Object(Doctrine\Common\Collections\ArrayCollection), 2: 12 }
私はどこで間違っていますか?