Symfony 4 DQL - запрос возвращает ноль - PullRequest
0 голосов
/ 29 января 2019

У меня есть объект Booking со свойством bookingStart.

/**
 * @ORM\Column(type="datetime")
 */
private $bookingStart;

Я создаю объект с именем $filledSlots, который содержит все заказы в $bookingRepository, соответствующие данному дню.

$today = (new \DateTime())->setTime(0,0);
$filledSlots = $bookingRepository->getBookingsForDay($today);

Я создал метод для запроса таблицы бронирований:

function getBookingsForDay(\DateTime $day) {

    //Build query
    return $this->createQueryBuilder('b')
        ->andWhere('b.bookingStart = :val')
        ->setParameter('val', $day)
        ->getQuery()
        ->getResult();
}

Но когда я сбрасываю $ fillSlots, он пуст:

ProfileController.php on line 60:
[]

У меня определенно есть хотя бы одно бронированиев базе данных на сегодняшний день.Неправильно ли найти запрос к текущему дню?

1 Ответ

0 голосов
/ 29 января 2019

Я предполагаю, что сохраненная сущность имеет значение datetime с часами / минутами и тому подобное.Таким образом, вам нужно ударить именно в это время, чтобы получить результат.

Вы можете попробовать один или несколько из следующих вариантов:

  • использовать date вместо datetime

  • запрос в формате, совместимом с базой данных, например,

    ->setParameter('val', $day->format('Y/m/d'))
    
  • , попробуйте найти даты между определенными датами, например, ->andWhere('b.bookingStart BETWEEN :start AND :end'), предоставив start как today 00:00:00 и end как today 23:59:59 (псевдо-значения!)


Также вы можете проверить, как $bookingStart установлен впервое место.Если это просто:

 $this->bookingStart = new \DateTime('now'); // or similar

у вас будет доля времени в БД.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...