Я пытаюсь использовать доктрину и принимать упорядоченные значения, но я не могу.
Я стараюсь:
$articlesB = $this
->getDoctrine()
->getManager()
->getRepository('theBundle:Article')
->findAll(array('date' => 'ASC'));
Вы знаете, как принять эти значения, упорядоченные по дате? Столбец называется датой и принимает все даты. Я хочу, чтобы этот заказчик.
Спасибо С уважением
Используйте findBy вместо findAll с пустым массивом для первого аргумента (критерии выбора) и ваш массив сортировки в качестве второго аргумента.
$articlesB = $this
->getDoctrine()
->getManager()
->getRepository('theBundle:Article')
->findBy(array(),array('date' => 'ASC'));
В этом случае я посмотрел на фактический исходный код. Вы бы подумали, что findAll() будет работать, но нет. Он никогда не передает критерии сортировки.
Вам необходимо создать ArticleRepostory и в нем:
public function getOrderedArticles()
{
$return $this->getEntityManager()
->createQuery(
"SELECT a FROM theBundle:Article a "
. "ORDER BY a.date ASC"
);
}
так что ваш контроллер мог бы
$articlesB = $this
->getDoctrine()
->getManager()
->getRepository('theBundle:Article')
->getOrderedArticles();
findAll
- это просто ярлык дляfindBy(array())
( doctrine-project.org/api/orm/2.2/… ), так что это будет самый простой подход.