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 :

Passer une liste triée dans un formulaire [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut Passer une liste triée dans un formulaire
    Bonjour,

    J'ai un formulaire qui affiche une liste d'entités sous forme de checkbox : jusque là tout va bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $builder
                    ->add('nom')
                    ->add('lieu')
                    ->add('clients', 'entity', array(
                        'class' => 'SdzReportBundle:Client',
                        'property' => 'affichage',
                        'multiple' => true,
                        'expanded' => true,
                        ))
    
    
            ;
    Maintenant je modifie le formulaire afin d'afficher cette même liste sur les entités cette fois-ci TRIEES :

    Voici ce que j'essaie de faire :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
    
        /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options) {
            
            $entityManager = $options['attr']['em'];
    
            $repository = $entityManager->getRepository('SdzReportBundle:Client');
    
            $clients = $repository->sortAllByName();
            
            $builder
                    ->add('nom')
                    ->add('lieu')
                    ->add('clients', 'entity', array(
                        'class' => $clients,
                        'property' => 'affichage',
                        'multiple' => true,
                        'expanded' => true,
                        ))
            ;
        }
    
    
        /**
         * @param OptionsResolverInterface $resolver
         */
        public function setDefaultOptions(OptionsResolverInterface $resolver) {
            $resolver->setDefaults(array(
                'data_class' => 'Sdz\ReportBundle\Entity\Intervention'
            ));
        }
    
    
        /**
         * @return string
         */
        public function getName() {
            return 'sdz_reportbundle_intervention';
        }
    }
    Mais cela ne fonctionne pas.

    Comment donc passer une liste d'objets triés dans un formulaire ?

    Merci.

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Hum. La valeur de 'class' doit demeurer SdzReportBundle:Client.

    Utilise l'option query_builder pour classer tes entités dans l'ordre que tu veux, au lieu d'appeler ton ClientRepository::getAllByName()

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 33
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    le code du formulaire doit ressembler à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
               ...
                ->add('clients', 'entity', array(
                    'class' => 'SdzReportBundle:Client',
                    'query_builder' => function(NamespaceVersClientRepository $er){
                        return $er->taMethodeQuiRetourneLesClientsTriees();
                    }))
            ;
       }
    Dans le repository de l'entité Client, tu doit juste coder la méthode qui te retourne les clients triés.

    Attention, la méthode du repository doit retourner un query builder, pas des résultats.

  4. #4
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Merci à vous deux. +1

    A+
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

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

Discussions similaires

  1. [PHP-JS] Passer une valeur $_POST dans un formulaire
    Par ddami1 dans le forum Langage
    Réponses: 10
    Dernier message: 18/07/2008, 21h05
  2. remplir une list box dans un formulaire
    Par imsse dans le forum VBA Access
    Réponses: 12
    Dernier message: 07/11/2007, 16h07
  3. Rafraichir une liste deroulante dans un formulaire
    Par hellosct1 dans le forum IHM
    Réponses: 2
    Dernier message: 09/01/2007, 20h36
  4. [MySQL] Renseigner une liste déroulante dans un formulaire en faisant une jointure.
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/10/2006, 10h12
  5. Réponses: 5
    Dernier message: 27/08/2006, 14h18

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