public function getMatchday(){ $today = new \DateTime('now'); $qb = $this->createQueryBuilder('m'); $qb->select( 'm.name AS name' ,'m.dateFrom AS dateFrom' ,'m.dateTo AS dateTo') ->where('(m.dateFrom < :today) and (m.dateTo > :today)') ->setParameter('today', $today->format('Y-m-d H:i:s')) ; $result = $qb->getQuery()->getResult(); // exit(\Doctrine\Common\Util\Debug::dump($result)); return $result; }
W wyniku dostaję taką tablicę:
array(1) { [0]=> array(3) { ["name"]=> string(9) "Kolejka 5" ["dateFrom"]=> string(8) "DateTime" ["dateTo"]=> string(8) "DateTime" } } array(1) { [0]=> array(3) { ["name"]=> string(9) "Kolejka 5" ["dateFrom"]=> string(8) "DateTime" ["dateTo"]=> string(8) "DateTime" } }
Dlaczego otrzymuję dwa dokładnie te same rekordy ?
ok wiem co było źle ... pobierałem tablicę zamiast pojedynczy rekord ... a więc poprawnie powinno być tak:
$result = $qb->getQuery()->getSingleResult();
Jeszcze tylko pytanie dlaczego nie pobiera mi daty ... w Twig mam błąd:
("Catchable Fatal Error: Object of class DateTime could not be converted to string")
ok problem z datą też rozwiązany ... wystarczyło po prostu zastosować odpowiedni filtr w TWIG:
{{ matchday.dateFrom|date('d-m-Y') }} {{ matchday.dateTo|date('d-m-Y') }}
Temat do zamknięcia