OneToMany, Project
ve Services
ile iki Varlığım var. Şimdi tüm hizmetleri project_id ile kaldırmak istiyorum.Doctrine 2 sorgu oluşturucuyla silme
İlk girişimi:
$qb = $em->createQueryBuilder();
$qb->delete('Services','s');
$qb->andWhere($qb->expr()->eq('s.project_id', ':id'));
$qb->setParameter(':id',$project->getId());
Bu girişim İstisna Entity Service does not have property project_id
ile başarısız olur. Ve doğru, bu özellik mevcut değil, sadece yabancı anahtar olarak veritabanı tablosunda.
İkinci girişimi:
$qb = $em->createQueryBuilder();
$qb->delete('Services','s')->innerJoin('s.project','p');
$qb->andWhere($qb->expr()->eq('p.id', ':id'));
$qb->setParameter(':id',$project->getId());
Bu seferki generetate çok olmayan bir geçerli DQL sorgusu.
Herhangi bir fikir ve örnek kabul edilecektir.
Üçüncü satır aşağıdaki gibi yeniden yazılabilir: $ qb-> where ('s.project =: project'); – Oli