Bonjour,
J'ai 2 enties qui utilisent les champs cp et ville :
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 class Client { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\Column(length: 70)] private ?string $nom = null; #[ORM\Column(length: 70)] private ?string $prenom = null; #[ORM\Column(length: 5)] private ?string $cp = null; #[ORM\Column(length: 70)] private ?string $ville = null;
Je voulais créer un sous formulaire cpVille : CpVilleType :
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 #[ORM\Entity(repositoryClass: EntrepotRepository::class)] class Entrepot { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\Column(length: 70)] private ?string $nom = null; #[ORM\Column(length: 100)] private ?string $adresse = null; #[ORM\Column(length: 5)] private ?string $cp = null; #[ORM\Column(length: 70)] private ?string $ville = null;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class CpVilleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder ->add('cp') ->add('ville') ; }
et le formulaire ClientType :
mon controller Client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class ClientType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder ->add('nom') ->add('prenom') ->add( $builder->create('CpVille', FormType::class ) ->add('cp') ->add('ville') ) ->add('Creer', SubmitType::class) ; }
et ma vue twig
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public function creer(EntityManagerInterface $em, Request $request): Response { $client = new Client(); $form = $this->createForm(ClientType::class, $client); // on envoie la réponse au navigateur sous forme de formulaire $form->handleRequest($request); if($form->isSubmitted() && $form->isValid()){ $em->persist($client); $em->flush(); } return $this->render('client/creer.html.twig', ['formClient' => $form->createView()]); }
Mon formulaire se lance, et quand je valide j'ai ce message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 {% extends 'base.html.twig' %} {% block title %}Client{% endblock %} {% block body %} <h1>Nouveau client</h1> {{ form(formClient) }} {% endblock %}Mes paramètres sont bien passés, mais pas comme il faut.Could not determine access type for property "CpVille" in class "App\Entity\Client".
Que me manque t-il pour que ça marche ? et donc que je puisse réutiliser ce formulaire
Merci pour vos réponses
Partager