Hello

Comme dit dans le titre, j'aimerai mettre en place plusieurs entités dont les attributs sont dans une même table

Par exemple, j'ai ma classe "employe" : nom, prenom...
et je voudrai créer une autre classe "candidat" qui aurait les mes attributs qu' employé plus d'autres (date de candidature..)

J'avais trouvé Inheritance de doctrine

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
* @ORM\InheritanceType("SINGLE_TABLE")
 * @ORM\DiscriminatorColumn(name="classname", type="string")
 * @ORM\DiscriminatorMap({"employe" = "employe", "candidat" = "Candidat"})
J'ai bien une table pour mes entités, mais doctrine ajoute une clause automatique where class_name in ('employe', 'candidature')
ce qui est logique, mais je n'arrive pas à forcer cette clause
si je fais

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$qb->andWhere('e.class_name = :class')
                    ->setParameter('class', "employe");
J'ai l'erreur

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Entity\Employe has no field or association named class_name
pourtant dans ma table ce champ existe bien
et j'ai même créer dans mon entity un

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
protected $class_name;
 
    public function getClassName()
    {
        return $this->class_name;
    }
mais ca va pas mieux

Comment faire ?

Et est ce la bonne méthode dans mon cas en utilisant l'inheritance ?

J'ai essayé en passant par une class abstract mais d'office j'ai plussieurs table qui se crée

Merci