2016-08-03 3 views
6

J'ai un arbre de pages. Je voudrais obtenir toutes les sous-pages d'une page. Pour ce cas, j'ai ajouté le fetch: Eager à mon fichier yaml. Je veux aussi commander les sous-pages par leur poste. Mais le fetch semble tout gâcher. Cela réduit la quantité totale de requêtes exécutées, mais les sous-pages ne sont plus triées par leur position.Doctrine Symfony et chercher combinaison EAGER orderBy ne fonctionne pas

Cette partie est à l'intérieur de mon yaml fichier pour l'entité Page:

oneToMany: 
    pages: 
     targetEntity: Page 
     mappedBy: parentPage 
     fetch: EAGER 
     orderBy: { position: ASC } 

Toute idée comment obtenir toutes les pages d'une page, mais toujours l'ordre par le poste? L'arbre des pages peut être imbriqué de plus d'un niveau.

- page_1 
    page_1_1 
    page_1_2 
     page_1_2_1 
     page_1_2_2 
- page_2 

Répondre

0

J'ai le même problème. Lorsque j'utilise le mode fetch, la doctrine EAGER crée une requête avec des jointures à gauche au lieu de deux requêtes et ignore l'ordre sans avertissement. Les solutions sont en mode LAZY, mais oui c'est moins efficace.