Bonjour, je souhaite supprimer une donnée qui est lié une relation oneToMany.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
        $em = $this->getDoctrine()->getEntityManager();
        $contact = new Contact();
        $contact = $em->getRepository('KodAnnuaireBundle:Contact')->find($idcontact);
        $em->remove($contact);
        $em->flush();
ici je ne peux pas supprimer "$contact" car il y a un relation oneToMany
un contact a plusieurs rendes-vous,
Dans cette situation, $contact contient encore un rendez-vous, donc j'aurais un erreur
de clé etrangère.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`logykod`.`Rdv`, CONSTRAINT `FK_288E5966E7A1254A` FOREIGN KEY (`contact_id`) REFERENCES `Contact` (`id`))
ma première question :

Avant d'afficher cette erreur, comment je peux faire pour afficher une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Le contact possède encore un ou des rendez-vous, merci de les supprimer avant
de supprimer celui-ci
2ème question

Comment faut t'il faire pour compter le nombre de rendez-vous qu'il lui reste à ce contact ?

Voici comment est liée mon contact (RDVs et l'ensemble des rendez-vous)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
class Contact {
 
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
 
    /**
     * 
     * @ORM\OneToMany(targetEntity="Kod\AgendaBundle\Entity\Rdv",mappedBy="contact")
     */
    private $Rdvs;
Je vous remercie d'avance pour la réponse