Hello !
J'aimerais savoir s'il est possible d'utiliser un ManyToOne pour plusieurs champs dans un formulaire ?
Voici un exemple :
J'ai une entité Voiture et une autre Concours
(le concours peut avoir une voiture (de chaque) mais la voiture peut avoir plusieurs concours)
Et donc 2 tables dans la BDD
Champ table Voiture :
id | modele | couleur | annee
Champ table Concours :
id | nom | voiture | date
Dans un formulaire de création du concours, j'ai un champ pour selectionner la voiture par l'intermédiaire de son modèle et, à côté, j'aimerais avoir 2 autres champs : couleur et année.
Donc j'ai l'Entity Concours et plus précisément, le lien vers l'Entity Voiture:
#[ORM\ManyToOne(inversedBy: 'concours')]
#[ORM\JoinColumn(nullable: false)]
private ?Voiture $voiture = null;
public function getVoiture(): ?Voiture
{
return $this->voiture;
}
public function setVoiture(?Voiture $voiture): static
{
$this->voiture = $voiture;
return $this;
}
Le type ConcoursType :
->add('voiture', EntityType::class,[
'class' => Voiture::class,
'autocomplete' => true,
'query_builder' => function (VoitureRepository $r) {
return $r->createQueryBuilder('i')
->orderBy('i.modele', 'ASC');
},
'attr' => [
'class' => 'form-select'
],
'label' => "Modèle de la voiture",
'label_attr' => [
'class' => 'form-label mt-4'
],
'choice_label' => 'modele',
'multiple' => true,
])
1ere question : Est ce que je peux récupérer les autres champs de la voiture (couleur et année) sans refaire un "add" vu que de toute façon celui-ci cible l'élément "voiture" de mon entity Concours avec Symfony ?
2eme question : Est ce qu'il est possible de creer dans champs auto complète qui ne peuvent pas être modifié par l'utilisateur ?
Merci