问题
I wrote a query that I can call within my form to select date range and to return all database data in that range.
The api call works fine but when I set date parameters it returns an empty result.
$date = new \Datetime();
$result = $this->getMyRepository()
->createQueryBuilder('a')
->select('a')
->where('a.date >= :from')
->andWhere('a.date <= :to')
->setParameter('from', $date->format('Y-m-d H:i:s'))
->setParameter('to', $date->format('Y-m-d H:i:s'))
->orderBy('a.id')
->getQuery()
->getArrayResult();
return $result;
回答1:
It appears to me that you have used format
in your from
and to
dates, which you don't need to. Also, I have noticed that the same $date
has been used for both from
and to
. I am sure you didn't mean to use like that.
Replace this,
->setParameter('from', $date->format('Y-m-d H:i:s'))
->setParameter('to', $date->format('Y-m-d H:i:s'))
with this,
$dateFrom = new \Datetime();
$dateFrom->setDate(2017, 1, 31);
$dateTo = new \Datetime();
$dateTo->setDate(2017, 12, 31);
->setParameter('from', $dateFrom )
->setParameter('to', $dateTo)
Hope this helps.
Cheers.
来源:https://stackoverflow.com/questions/54304972/doctrine-query-with-date-range