Voilà trois heures que je tente une manoeuvre de haute voltige en SQL via symfony2/doctrine :
Code : Tout sélectionner
SELECT
mi.*
FROM
menu_item mi
ORDER BY
(mi.parent IS NULL) DESCje précise que la requête finale est un poil plus compliquée : il y a deux order :
D'où mon "obligation" d'utiliser cette "expression" dans le order by.ORDER BY
(mi.parent IS NULL) DESC,
mi.parent ASC
Bon trêve de plaisanterie... Je ne parviens pas du tout à mes fins...
J'ai testé différentes choses :
QueryBuilder :
$queryBuilder = $this->createQueryBuilder('mi');
$query = $queryBuilder
->addSelect('(mi.parent IS NULL) as parent_is_null')
->orderBy('parent_is_null','DESC')
->getQuery();
j'ai des erreurs de "parsing" de doctrine...DQL :
$query = $em->createQuery(
'SELECT
mi
FROM
MyBundle:MenuItem mi
ORDER BY
(mi.parent IS NULL) DESC'
);
Idem erreur de parsing.Je tente même en "NativeQuery":
$rsm = new ResultSetMapping();
$query = $this->getEntityManager()->createNativeQuery(
'SELECT
mi.*
FROM
menu_item mi
ORDER BY
(mi.parent IS NULL) DESC',
$rsm
);
var_dump($query->getResult());
Je n'ai pas d'erreurs, si je test la requête (via $query->getSQL()) directement dans mysql, ça fonctionne.Mais là je n'ai aucun résultat...
Je ne trouve rien de fonctionnel sur le net, et les documentations sont bien maigres je trouve pour un point "poussé" comme ça....
Si quelqu'un à la solution...
Merci d'avance pour votre aide,
Cordialement,