2015-07-30 2 views
1

Я разрабатываю веб-приложение с помощью Symfony framework. Я хочу получать записи из базы данных всех месяцев. Я не знаю, как писать запрос для получения записей с jan до декабря. это мой код:Получить записи обо всех месяцах в symfony

$totalSearchesByAdminMonth = $em->createQueryBuilder() 
    ->select('count(SearchHistory.id) AS totalSearchesByAdmin') 
    ->from('DRPAdminBundle:Log', 'SearchHistory') 

    ->where('SearchHistory.last_updated like :last_updated') 
    ->setParameter('last_updated',$months.'-%') 

    ->andwhere('SearchHistory.event = :event') 
    ->setParameter('event','ADMIN_SEARCH') 

     ->getQuery() 
     ->getArrayResult(); 

Пожалуйста, помогите.

+0

взглянуть на эту http://stackoverflow.com/questions/11553183/select-entries-between-dates-in-doctrine-2 – Matteo

ответ

1

Предполагая, что SearchHistory.last_updated является полем datetime, а $ month - количеством месяцев назад, с которого вы хотите выполнить поиск.

$start = new \DateTime(); 
$start->sub(new \DateInterval("P{$months}M"); 

$totalSearchesByAdminMonth = $em->createQueryBuilder() 
->select('count(SearchHistory.id) AS totalSearchesByAdmin') 
->from('DRPAdminBundle:Log', 'SearchHistory') 

->where('SearchHistory.last_updated between :last_updated_start and :last_updated_end') 
->setParameter('last_updated_start',$start) 
->setParameter('last_updated_end',new \DateTime()) 

->andwhere('SearchHistory.event = :event') 
->setParameter('event','ADMIN_SEARCH') 

    ->getQuery() 
    ->getArrayResult(); 
+0

я получил ошибку на $ Пуск-> подразделам (новый \ DateInterval ("P {$ months} ​​M"); –

+0

Неопределенная переменная: months.how, чтобы получить количество месяцев назад –

Смежные вопросы