Bonjour,
J'utilise l'Inheritance Mapping de doctrine2 en mode "JOINED" avec "discriminator column" = "type" comme décrit ici inheritance-mapping.html
La création des tables et l'enregistrement de données marchent bien mais je n'arrive pas à récupérer les données d'un seul type.
Si j'exécute :
sans définir la propriété type comme un champ de ma base:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $this->getDoctrine() ->getRepository('MonBundle:MaTableMere') ->findByType('type_de_la_classe_fille');
une exception est levée : "Entity MonBundle\Entity\MaTableMere has no field 'type'. You can therefore not call 'findByType' on the entities' repository".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 /** * @var string $type * */ private $type;
Si maintenant je définit type comme un champ de ma base :
et que j'execute l'instruction ci dessus, une autre exception est levée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 /** * @var string $type * * @ORM\Column(name="type", type="string", length=50, nullable=true) */ private $type;
"Duplicate definition of column 'type' on entity 'MonBundle\Entity\MaTableMere' in a field or discriminator column mapping."
Ma question est donc, comment faire un select * where type = 'type_de_la_classe_fille' dans ce genre d'architecture ?
Merci d'avance pour votre aide.
Partager