Mam dwa elementy o relacji OneToMany, Project
i Services
. Teraz chcę usunąć wszystkie usługi przez project_id.Doctrine 2 delete with query builder
Pierwsza próba:
$qb = $em->createQueryBuilder();
$qb->delete('Services','s');
$qb->andWhere($qb->expr()->eq('s.project_id', ':id'));
$qb->setParameter(':id',$project->getId());
Ta próba nie powiedzie się z wyjątkiem Entity Service does not have property project_id
. I to prawda, że właściwość nie istnieje, jest tylko w tabeli bazy danych jako klucz obcy.
Druga próba:
$qb = $em->createQueryBuilder();
$qb->delete('Services','s')->innerJoin('s.project','p');
$qb->andWhere($qb->expr()->eq('p.id', ':id'));
$qb->setParameter(':id',$project->getId());
Ten generetate non ważny zapytania DQL też.
Wszelkie pomysły i przykłady będą mile widziane.
Trzecią linię można przepisać w następujący sposób: $ qb-> where ('s.project =: project'); – Oli