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 :

Sélectionner une valeur en fonction de l'id en get dans un formulaire


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut Sélectionner une valeur en fonction de l'id en get dans un formulaire
    Bonjour à tous, j'utilise Symfony depuis peu et je suis bloqué sur un point.
    J'ai un champ projet que j'aimerais cacher ou désactivé si il y a un id projet présent dans mon url. Ca, rien de très compliqué. Sauf qu'au submit la valeur par défaut que va prendre l'id projet sera toujours de 1 si le champ est caché et j'aimerais que la valeur soit égale à l'id de mon url. Si vous avez une solution je suis preneur. Merci d'avance !

    ps : Projet à une relation OneToMany avec Sprint et ne peut pas être null

    Mon formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('name')
                ->add('tag')
                ->add('project', EntityType::class, [
                    'class'        => Project::class,
                    'choice_label' => 'name',
                ]);
        }
    Mon controller :

    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
    $sprint = new Sprint();
            $form   = $this->createForm(SprintType::class, $sprint);
            $form->handleRequest($request);
     
            if ($form->isSubmitted() && $form->isValid()) {
                $entityManager = $this->getDoctrine()->getManager();
                $entityManager->persist($sprint);
                $entityManager->flush();
     
                return $this->redirectToRoute('sprint_show', ['id' => $sprint->getId()]);
            }
     
            return $this->render('sprint/new.html.twig', [
                'sprint' => $sprint,
                'form'   => $form->createView()
            ]);
    Ma vue :

    Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    {{ form_start(form) }}
     
        {{ form_errors(form) }}
        {{ form_row(form.name) }}
        {{ form_row(form.tag) }}
     
        {% if not app.request.query.get('id') %}
          {{ form_row(form.project) }}
            {% else %}
            {{ form_row(form.project, { "disabled":"disabled" }) }}
        {% endif %}
     
        <button class="btn btn-primary">{{ button_label|default('Save') }} </button>
     
    {{ form_end(form) }}

  2. #2
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Bonjour,

    Ce n'est pas à la vue de gérer cela, mais au formulaire de ne lister que les valeurs nécessaires. Le formulaire doit ignorer une valeur, valeur que seul le contrôleur connait. Donc ton contrôleur doit communiquer cette valeur au formulaire via une option.

    Voici mes recommandations avec des liens vers un tuto et un autre vers la documentation de Symfony :


    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
    public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('name')
                ->add('tag')
                ->add('project', EntityType::class, [
                    'class'        => Project::class,
                    'choice_label' => 'name',
                    'query_builder' => function (EntityRepository $er) {
                          return $er->createQueryBuilder('p')
                                    ->where('p.id <> :identifier')
                                    ->setParameter('identifier', $this->identifier)
                       
                     },
                ]);
        }
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    Merci de ta réponse!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/04/2013, 11h46
  2. Réponses: 2
    Dernier message: 21/01/2013, 16h44
  3. Réponses: 5
    Dernier message: 01/07/2010, 18h02
  4. Sélectionner une valeur dans un RxDBLookupCombo
    Par Oluha dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/09/2005, 09h10
  5. Est-il possible de sélectionner une valeur d'un menu déroula
    Par pontus21 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/05/2005, 09h44

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