sexta-feira, 12 de setembro de 2014

ORDER BY FIELD - Doctrine 2

Digamos que você tem uma ordenação em uma coluna no banco de dados, o qual seria necessário fazer uma listagem nessa ordem, exemplo uma string de ids algo como "122,150,152,129", e usando apenas o ORDER BY isso não ira funcionar, precisamos então usar o FIELD, veja no exemplo como ele ajuda nessa questão.

A variável $listPages, possui uma STRING com a minha ordenação , $listPages = "122,150,152,129" a qual eu preciso que venha os resultados da query, então fizemos assim :

public function getPagesByPackage($listPages, $entidade)
    {
         $query = self::getInstance()->createQuery('p')
                    ->where('p.id in (' . $listPages . ')')
                    ->andwhere('p.entidade = ?', $entidade)
                    ->orderBy('FIELD(id, ' . $listPages . ')');
            
            return $query;
    }

Nenhum comentário:

Postar um comentário