мне нужно запросить статистику по месяцам и/или год, но я получаю эту ошибку:Symfony3 Доктрина findByDate фильтр месяц и/или год
Error: Expected known function, got 'YEAR'
Мой код:
public function findByMonthYear($month, $year)
{
$qb = $this->createQueryBuilder('p')
->where('YEAR(p.date) = :year')
->andWhere('MONTH(p.date) = :month');
$qb->setParameter('year', $year)
->setParameter('month', $month);
return $qb->getQuery()->getOneOrNullResult();
}
С некоторых исследований это показывает, что DQL не имеет функции YEAR(), так что это плата за проезд ... http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/working-with-datetime.html
В конце концов, я не прилипает по нац е решение. Так что, если у вас есть чистый для одного и того же результата, я отвечу на него как на ответ.
коллега сказал мне, что решение в виде следующей крути работы:
where('p.date = :date')
setParameter('date', ''.$year.'-'.$month.'-%') // 2016-07-%
Нет успеха до сих пор.
Я рекомендую использовать ** DoctrineExtensions ** bundle (https://github.com/beberlei/DoctrineExtensions). Он добавляет много полезной функции для доктрины. – rokas