Bonjour.
J'aimerais développé un site d'annonce immobilière en symfony2.
Dans ma conception j'ai une entité AnnonceImo(...nbrePiece, surface, cuisine, salleBain, foyer,...)
qui comporte plusieurs champs spécifique à chaque type de bien (maison, terrain...).
Le type de bien terrain par exemple n'a pas besoin des champs (nbrePiece, cuisine, salleBain, foyer).
Problème: A la création d'une annonce de terrain par exemple, comment faire pour n'avoir que les champs le concernant.
Pour essayer de résoudre ce problème, j'ai tenter l'héritage en doctrine.
Mais je ne comprend pas son fonctionnement.
Je constate qu'il aura autant d'entité que de type de bien et alors autant de formulaire.
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 /** * * @ORM\Entity * @ORM\InheritanceType("JOINED") * @ORM\DiscriminatorColumn(name="discr", type="string") * @ORM\DiscriminatorMap({"annonceImmo " = "AnnonceImmo ", "terrain" = "Terrain", "maison" = "Maison"}) */ class AnnonceImmo { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="title", type="string", length=100) */ private $title; //.. } class Terrain extends AnnonceImmo{ /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var integer * * @ORM\Column(name="terrain_surface", type="integer") */ private $surface; //... }
Alors que j'espère comme fonctionnement:
- Un seul formulaire d'enregistrement d'annonce immobiliere.
- Quand on va choisir le type de bien terrain par exemple, cela n'affichera que le champ surface c'est-à-dire un formulaire dynamique selon le type de bien.
Voilà en gros mon souci. Est -ce possible?
Merci pour vos conseils.
Partager