Попробуем составить запрос используя dql чтобы получить данные из таблицы по нужному YEAR, MONTH или DAY.
В config,yml прописываем:
Затем заходим в контейнер с symfony и выполняем
composer require beberlei/DoctrineExtensions
Теперь мы можем выполнять sql запросы используя YEAR, MONTH, DAY
Выводим на экран:
В config,yml прописываем:
orm: ... dql: string_functions: YEAR: DoctrineExtensions\Query\Mysql\Year MONTH: DoctrineExtensions\Query\Mysql\Month DAY: DoctrineExtensions\Query\Mysql\Day
Затем заходим в контейнер с symfony и выполняем
composer require beberlei/DoctrineExtensions
Теперь мы можем выполнять sql запросы используя YEAR, MONTH, DAY
public function findOneByDate($year, $month, $day){ $emConfig = $this->getEntityManager()->getConfiguration(); $emConfig->addCustomDatetimeFunction('YEAR', 'DoctrineExtensions\Query\Mysql\Year'); $emConfig->addCustomDatetimeFunction('MONTH', 'DoctrineExtensions\Query\Mysql\Month'); $emConfig->addCustomDatetimeFunction('DAY', 'DoctrineExtensions\Query\Mysql\Day'); $qb = $this->createQueryBuilder('p'); $qb->select('p') ->where('YEAR(p.pdate) = :year') ->andWhere('MONTH(p.pdate) = :month') ->andWhere('DAY(p.pdate) = :day'); $qb->setParameter('year', $year) ->setParameter('month', $month) ->setParameter('day', $day); $post = $qb->getQuery()->getResult(); return $post;}
Из контролера:
$oneday = $em->getRepository('HankDescBundle:Fin')->findOneByDate(2017, 2, 12);
Выводим на экран:
{% for today in oneday %} {{ today.total }} {% endfor %}
Комментарии
Отправить комментарий