0
我想使用ajax更新實體,但它增加了一個新行,而不是更新現有的。更新的實體添加新行到數據庫
我的實體:
- 類別
- 產品
- 子目錄
關係:
類別ManyToMany
產品
類別OneToMany
子目錄
類別實體
/**
* @ORM\ManyToMany(targetEntity="Test\CoreBundle\Entity\Product", inversedBy="categories", cascade={"persist"})
* @Groups({"public", "admin"})
*/
protected $products;
public function setProducts($products) {
$this->products= new ArrayCollection($products->toArray());
return $this;
}
產品實體
/**
* @ORM\ManyToMany(targetEntity="Test\CoreBundle\Entity\Category", mappedBy="products")
* @Exclude()
*/
protected $categories;
控制器
$toSave = $this->get('request')->getContent();
$s = $serializer->deserialize($toSave, Test\CoreBundle\Entity\Category, 'json');
if ($s->getId() > 0) {
$category= $em->getRepository('TestCoreBundle:Category)->findOneBy(['id' => $s->getId()]);
$category->setName($s->getName());
$category->setIsDisabled($s->getIsDisabled());
$category->setIsPrivate($s->getIsPrivate());
$category->setQuestions($s->getCategories());
$em->persist($category);
$em->flush();
}
問題:
該代碼添加新產品數據庫,我想更新現有記錄。
事情我想:
- 與
merge
替換persist
,沒有什麼區別。 - 移除
persist
,相同的結果
刪除'$ EM->堅持($類);'和'試$ EM->齊平($類);' – tzafar
@tzafar同樣的問題 – giannisf
在類別實體中從'ManyToMany'關係中刪除'cascade = {「persist'}'並刪除'$ em-> persist($ category);'並嘗試'$ em-> flush($ category) ;' – tzafar