Задать вопрос
@Qwyu_4iLofK

Как исправить cascade persist?

у меня две сущности
class Orders{

   /**
     * @ORM\OneToMany(targetEntity=Positions::class, mappedBy="ord",cascade={ "remove", 
"persist"})
     */
    private $positions;
}


class Positions{
 /**
     * @ORM\ManyToOne(targetEntity=Orders::class, inversedBy="positions")
     * @ORM\JoinColumn(name="ord",referencedColumnName="guid",onDelete="CASCADE")
     */
    private $ord;
}


при попытке удалить заказ

class OrdersRepository{
public function delOrder(){
   ....
   $this->em->remove($order);
   $this->em->flush();
}
}

, возникает ошибка:

A new entity was found through the relationship 'App\Entity\Positions#ord' that was not configured to cascade persist operations for enti
ty: App\Entity\Orders@7804. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist
this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement '
App\Entity\Orders#__toString()' to get a clue.


у меня же стоит, но не работает...

Как только поставлю в функцию удаления заказа:
class OrdersRepository{
public function delOrder(){
   ....
   $this->em->remove($order);
   $this->em->flush();
   $this->em->clear(); //?????? верно ли, почему  помогло?
}
}

ошибка пропадает , и почему? честно, подсмотрела ответ там, но не поняла почему, и верно ли?
  • Вопрос задан
  • 648 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы