Привет, у меня есть отношение M: M между двумя таблицами, Контактами и Тегами, и их таблица M: M называется Contacts_Tags:
Contacts
------------
ID
Name
Tags
-----------
ID
Name
Contacts_Tags
--------------
Contact_ID
Tag_ID
У меня есть объекты для Контактов, называемых Контактом, и для Тегов, называемых Тегами, но недля таблицы Contacts_Tags.
Я хочу удалить строку только из Contacts_Tags
.Это мои отношения в Contact
Entity.
/**
* Many Contacts have Many Tags.
* @ORM\ManyToMany(targetEntity="Tag", inversedBy="contacts", cascade={"remove"})
* @ORM\JoinTable(name="Contacts_Tags",
* joinColumns={@ORM\JoinColumn(name="Tag_ID", referencedColumnName="ID")},
* inverseJoinColumns={@ORM\JoinColumn(name="Contact_ID", referencedColumnName="ID")}
* )
*/
private $tags;
Я пробовал этот запрос, но он не помог
$queryBuilder = $this->entityManager->getRepository(Contact::class)->createQueryBuilder("o")
->leftJoin("o.tags", "ct")
->leftJoin(Tag::class, "t", "WITH", "t.ID", "ct.Tag_ID")
->where("t.Name = :tagName")
->delete("o.tags", "ct")
->setParameter(":tagName", $diffBeat)
;