К основному контенту

symfony 3 sql year, month, day

Попробуем составить запрос используя dql чтобы получить данные из таблицы по нужному 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 %}

Комментарии

Популярные сообщения из этого блога

Настройка принтера HP Laserjet 1020 в ubuntu (kubuntu).

1. Скачиваем необходимый драйвер с официального сайта. $ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz --2010-01-03 11:19:24-- http://foo2zjs.rkkda.com/foo2zjs.tar.gz Преобразование адреса foo2zjs.rkkda.com... 74.208.41.246 Устанавливается соединение с foo2zjs.rkkda.com|74.208.41.246|:80... соединились. Запрос HTTP послан, ожидание ответа... 200 OK Длина: 1588047 (1,5M) [application/x-tar] Сохраняется в каталог: `foo2zjs.tar.gz'. 100%[============================================================================>] 1 588 047 43,0K/s в 55s 2010-01-03 11:20:19 (28,1 KB/s) - `foo2zjs.tar.gz' сохранён [1588047/1588047] 2. Распаковываем полученный архив: tar zxf foo2zjs.tar.gz cd foo2zjs 3. Теперь компилируем и инсталируем. Файл INSTALL содержит много информации и инструкций. Рекомендуется прочитать. $ make # # Dependencies... # # ... OK! ...

rtorrent

#.rtorrent.rc scgi_port = localhost:5000 min_peers = 10 max_peers = 50 max_uploads = 10 download_rate = 2000K upload_rate = 500K directory = /home/torrents/torrents/ session = /home/torrents/torrents/.rtsession schedule = watch_directory,60,60,load_start=/home/torrents/torrents/watch/*.torrent port_range = 7899-7899 port_random = no check_hash = yes peer_exchange = yes

Unix Toolbox

System Running kernel and system information # uname -a # Get the kernel version (and BSD version) # lsb_release -a # Full release info of any LSB distribution # cat /etc/SuSE-release # Get SuSE version # cat /etc/debian_version # Get Debian version Use /etc/DISTR-release with DISTR= lsb (Ubuntu), redhat, gentoo, mandrake, sun (Solaris), and so on. # uptime # Show how long the system has been running + load # hostname # system's host name # hostname -i # Display the IP address of the host. # man hier # Description of the file system hierarchy # last reboot # Show system reboot history Hardware Informations Kernel detected hardware # dmesg # Detected hardware and boot messages # lsdev # information about installed hardware # dd if=/d...