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 :

utiliser les expressions Doctrine dans un QueryBuilder [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2013
    Messages : 14
    Points : 16
    Points
    16
    Par défaut utiliser les expressions Doctrine dans un QueryBuilder
    Bonjour,

    j'ai besoin de trier une colonne d'une entité, via une expression doctrine ABS.

    Dans mon buildForm, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            $builder->add('parentId','entity', array(
                      'class' => 'foxp2projectsBundle:Categories',
                      'empty_value' => 'choisir ...',
                      'property' => 'categoriesName',
                      'query_builder' => function(CategoriesRepository $er) {
                                return $er->getCategoriesList();
                      },
                      'required' => false,
                      'label' => 'Catégorie parente :'                  
                     ));
    la fonction dans le repository :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public function getCategoriesList()
        {
            $qb = $this->createQueryBuilder('c');        
            $qb->select('c');        
            $qb->add('orderBy' ,$qb->expr()->abs('c.level'));        
            return $qb;
        }
    provocant une erreur de syntaxe :

    [Syntax Error] line 0, col 67: Error: Expected end of string, got '('
    si je remplace le orderby avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $qb->add('orderBy','c.categoriesName');
    le tri est fonctionnel.

    Une idée sur la bonne formulation ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Août 2013
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    la bonne syntaxe est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        public function getCategoriesList()
        {
            $qb = $this->createQueryBuilder('c');        
            $qb->select('c');        
            $qb->expr()->abs('c.level');
            $qb->add('orderBy' ,'c.level');        
            return $qb;
        }

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

Discussions similaires

  1. utiliser les expression regulieres dans vb
    Par subzero01 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 10/01/2008, 12h32
  2. Réponses: 6
    Dernier message: 14/12/2007, 23h26
  3. Réponses: 2
    Dernier message: 12/05/2006, 11h07
  4. Utiliser les forms Access dans un projet ADP -> SQL SERVE
    Par _developpeur_ dans le forum Projets ADP
    Réponses: 12
    Dernier message: 09/12/2005, 12h37
  5. Réponses: 2
    Dernier message: 17/09/2005, 17h43

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