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;

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;
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
class CpVilleType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
                ->add('cp')
                ->add('ville')
        ;
    }

et le formulaire ClientType :
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)
        ;
    }
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
 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()]);
    }
et ma vue twig
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 %}
Mon formulaire se lance, et quand je valide j'ai ce message :
Could not determine access type for property "CpVille" in class "App\Entity\Client".
Mes paramètres sont bien passés, mais pas comme il faut.
Nom : post.png
Affichages : 196
Taille : 27,8 Ko

Que me manque t-il pour que ça marche ? et donc que je puisse réutiliser ce formulaire
Merci pour vos réponses