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

Langage PHP Discussion :

Afficher une seule valeur parmi plusieurs sur un choice label


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Points : 30
    Points
    30
    Par défaut Afficher une seule valeur parmi plusieurs sur un choice label
    Bonjour,

    Je travaille actuellement sur un projet en Symfony et j'aimerais sur un formType EntityType avec une classe n'afficher qu'un seulement élément à choisir parmi plusieurs.

    Voici mon code rapidement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ->add('category', EntityType:: class, [
                    'class' => Category:: class,
                    'choice_label' => 'title',
                ])
    Mon entité catégorie a une propriété Title qui contient plusieurs valeurs [Un, deux, trois, quatre, cinq].

    Sur le choice label j'aimerais qu'il ne soit affiché qu'une valeur en particulier, par exemple la valeur "Un".

    J'ai testé un choice_name, choice_value, choices...Mais j'avoue ne pas savoir comment m'y prendre.

    Si vous avez une idée je suis preneur, Merci.

  2. #2
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 351
    Points : 719
    Points
    719
    Par défaut
    Bonjour,

    Tu devrais effectivement pouvoir utiliser l'option choices ou query_builder pour personnaliser le champ.
    Voir les exemples sur la doc :
    https://symfony.com/doc/current/refe...r-the-entities

    Bonne journée,

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Je te remercie pour ta réponse.

    J'ai essayé pas mal de choses avec le query_builder mais je comprends pas le principe.

    Par exemple en suivant la doc que tu m'as fourni j'ai fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ->add('category', EntityType:: class, [
                    'class' => Category:: class,
                    'query_builder' => function(EntityRepository $er) {
                        return $er->createQueryBuilder('c')
                        ->where('c.title = Personnages')     
                        ->getQuery()
                        ->getOneOrNullResult();
                    },
                    'choice_label' => 'title'
    Comme erreur j'ai ça :

    [Semantical Error] line 0, col 52 near 'Personnages': Error: 'Personnages' is not defined.
    J'ai écris la requête comme une requête SQL classique du type :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT category.title FROM `category` WHERE category.title = 'Personnages'

    Je n’arrive pas à traduire cette requête SQL en DQL

  4. #4
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 351
    Points : 719
    Points
    719
    Par défaut
    Puisque "Personnages" est une valeur, il faut l'entourer de quote dans la requête ou utiliser un paramètre nommé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ->where("c.title = 'Personnages'")
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ->where('c.title = :categorie_title')
    ->setParameter('categorie_title', 'Personnages')

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Junior
    Inscrit en
    Septembre 2021
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Junior

    Informations forums :
    Inscription : Septembre 2021
    Messages : 70
    Points : 30
    Points
    30
    Par défaut
    Top ça fonctionne merci beaucoup !

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

Discussions similaires

  1. mon imprimante n'imprime q'une seule copie parmi plusieurs
    Par pipipicontrole dans le forum Word
    Réponses: 1
    Dernier message: 19/05/2014, 17h33
  2. Réponses: 18
    Dernier message: 15/05/2010, 20h10
  3. Réponses: 3
    Dernier message: 06/02/2009, 15h22
  4. Récupérer une seule valeur parmi plusieurs
    Par geraldgg dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/05/2007, 10h26
  5. [Requêtes] Selectionner une seule date parmis plusieurs
    Par Herman dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/03/2007, 15h01

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