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 ?