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 :

Deux listes déroulantes pour la création dans le champ ROLES


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut Deux listes déroulantes pour la création dans le champ ROLES
    Bonjour,

    lorsque je veux modifier un utilisateur, je me sers de l'entityType User
    Tous les champs à modifier s"affichent , avec des valeurs trouvées dans la BDD et que l'on voudrait modifier

    Mais l'affichage des ROLES:

    Nom : roles.png
Affichages : 106
Taille : 34,0 Ko

    Alors j'ai presque compris pourquoi:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function getRoles(): array
        {
            $roles = $this->roles;
            // guarantee every user at least has ROLE_USER
            $roles[] = 'ROLE_USER';
     
            return array_unique($roles);
        }

    Si je supprime $roles[] = 'ROLE_USER'; alors tout rentre dans l'ordre, ...pour la modification.
    Mais ça bloque à la création:

    Nom : creation.png
Affichages : 90
Taille : 23,2 Ko

    il n'y a plus de champ pour rentrer les ROLES

    Après, peut-être que je peux régler le problème ici:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ->add('roles', CollectionType::class, [
                    'entry_type'   => ChoiceType::class,
                    'entry_options'  => [
                        'label' => false,
                        'choices' => [
                            'Admin' => 'ROLE_ADMIN',
                            'Collaborateur' => 'ROLE_COLL',
                            'commercial' => 'ROLE_COM',
                            'Candidat' => 'ROLE_CAND'
                        ],
                    ],
                ])

    Mais je ne sais pas comment !!!
    J'imagine que c'est un problème courant , mais je débute sur Symfony...

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut
    Bon, pas de réponses, pas de solutions au problèmes ?

    Je me dis que si des fois je créait une table pour les rôles ?
    Bonne idée, est-ce que le is_granted de twig fonctionnerait pareil ?

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut
    Je peux effectivement créer une table (qui n'est liée à aucune autre) et qui contiendra les différentes valeurs pour les rôles...
    Je vais prendre le temps et je reviens dire si ça marche.

    Car il faut tout de même que lors de la modification, je puisse afficher le role actuel de l'utilisateur à modifier et ensuite choisir un nouveau rôle ( ou pas )

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut
    trouvé !
    Code php : 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
     
    ->addEventListener(FormEvents::PRE_SET_DATA, function (FormEvent $event) {
                    $entity = $event->getData();
                    $form1 = $event->getForm();
                    $form1->add('role', ChoiceType::class, [
                            'mapped' => false,
                            'label' => 'rôle',
                            'choices' => [
                                '' => '',
                                'Admin' => 'ROLE_ADMIN',
                                'Collaborateur' => 'ROLE_COLL',
                                'commercial' => 'ROLE_COM',
                                'Candidat' => 'ROLE_CAND'
                            ],
                            //'expanded' => true,
                            'multiple' => false,
                            'data' => $entity->getRoles()? $entity->getRoles()[0]:'',
                        ]);
                    })

    ça m'a pris un temps mais maintenant je sais faire !!!

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

Discussions similaires

  1. [MySQL] Récupérer les données avec une liste déroulante pour les afficher dans un formulaire
    Par quaresma dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/11/2020, 15h45
  2. Concténer la selection de deux listes déroulantes pour obtenir une url
    Par PaRaDiGm dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 05/12/2014, 18h33
  3. Réponses: 1
    Dernier message: 29/12/2012, 22h26
  4. Réponses: 8
    Dernier message: 17/06/2011, 22h32
  5. Réponses: 5
    Dernier message: 18/11/2009, 11h25

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