Bonsoir,
Je bute sur un problème depuis le début de journée sans trouver de réponse. Je pencherai pour un bug Doctrine2 mais bref, voici le problème.
J'ai une entité Fiche_client_infos qui me sert de "Reporting" pour mes fiches clients (qui sont également des entités) en ayant différentes entités en relation ManyToOne. Pour chaque familles, elle me permet de connaitre fabricant, produit, négociant et poseur concerné (je ne rentre pas plus dans les détails).
Ma problématique : certaines familles n'ont par exemple que le fabricant et le produit de renseignés (et aucun négociant et poseur). Je décide donc de mettre ces champs en nullable avec annotations Doctrine2 mais lors de la génération de la base, je me retrouve avec des VARCHAR(255) qui correspondent à des string en php. J'ai essayé de forcer les champs en integer mais j'ai une erreur de Doctrine lors de la création (persistence) d'une entité qui me dit que mes entités "fabricant" ne peuvent pas être casté en String (je ne sais pas d'ou vient le fait que ce soit String, peut être à cause du nullable...).
Voici mon entité Fiche_client_infos :
Suis-je le seul à avoir ce problème ou est-ce une erreur de ma part svp ? Une relation ManyToOne ne peut-elle être pas Nullable ?
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 namespace cgie\MLBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * cgie\MLBundle\Entity\Fabricant_favoris * * @ORM\Table() * @ORM\Entity(repositoryClass="cgie\MLBundle\Entity\Fiche_client_infosRepository") */ class Fiche_client_infos{ /** * @ORM\Id * @ORM\ManyToOne(targetEntity="cgie\MLBundle\Entity\Fiche_client") */ private $fiche_client; /** * @ORM\Id * @ORM\ManyToOne(targetEntity="cgie\MLBundle\Entity\Famille") */ private $famille; /** * @ORM\ManyToOne(targetEntity="cgie\MLBundle\Entity\Fabricant") * @ORM\Column(nullable=true) */ private $fabricant; /** * @ORM\ManyToOne(targetEntity="cgie\MLBundle\Entity\Produit") * @ORM\Column(nullable=true) */ private $produit; /** * @ORM\ManyToOne(targetEntity="cgie\MLBundle\Entity\Negociant") * @ORM\Column(nullable=true) */ private $negociant; /** * @ORM\ManyToOne(targetEntity="cgie\MLBundle\Entity\Poseur") * @ORM\Column(nullable=true) */ private $poseur;
Merci d'avance.
Partager