IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

[5.4] FormType imbriqués


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur
    Inscrit en
    Janvier 2010
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 232
    Par défaut [5.4] FormType imbriqués
    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 : 195
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

  2. #2
    Membre éclairé
    Profil pro
    Développeur
    Inscrit en
    Janvier 2010
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Janvier 2010
    Messages : 232
    Par défaut
    Bonjour,

    J'ai trouvé, il fallait rajouter les bons getters setters dans l'entity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     public function getCpVille() :?string {
            return null;
        }
     
         public function setCpVille(array $params) :void {
            $this->cp=$params['cp'];
             $this->ville=$params['ville'];
        }
    merci aux personnes ayant pris le temps de lire mon message.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 10/02/2005, 00h13
  2. Réponses: 4
    Dernier message: 14/12/2004, 17h37
  3. IF THEN ELSE imbriqués
    Par nuke_y dans le forum Oracle
    Réponses: 2
    Dernier message: 15/11/2004, 14h57
  4. Requete select imbriqués avec plusieurs références
    Par GAlion dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/08/2004, 14h06
  5. "boutons" imbriqués !!
    Par biloubil dans le forum Flash
    Réponses: 9
    Dernier message: 04/12/2003, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo