Doctrine DQL динамический параметр ORDER BY - PullRequest
2 голосов
/ 28 сентября 2011

Я пытаюсь передать столбец ORDER BY в качестве параметра в DQL, как показано ниже:

$this->em->createQuery("SELECT t FROM Entities\Topic t ORDER BY :order")
     ->setParameters( array('order' => 't.name') )->getResult();

Я думаю, это не сработает, потому что setParameter сбежит: порядок, однако приведенное ниже решение неКажется, очень хорошо:

$order = 't.name'; // Dynamic value
$this->em->createQuery("SELECT t FROM Entities\Topic t ORDER BY $order")
     ->getResult();

Есть ли лучший способ решить эту проблему?

1 Ответ

3 голосов
/ 05 октября 2011

В этом случае используйте Doctrines Querybuilder :

$order = 't.name'; // Dynamic value

$qb = $this->_em->createQueryBuilder();
$qb->select('t')
   ->from('Entities\Topic', 't')
   ->orderBy($order);
...