Если вы используете Doctrine, то последний вариант по определению не должен использоваться, так как Doctrine обладает функциональностью для создания запросов.Поэтому либо передайте объект DateTime в качестве параметра, например, в функцию репозитория, и / или используйте создание экземпляра нового объекта DateTime, когда вы используете QueryBuilder.
В качестве параметра для функции, например, в репозитории:
function getStuff(DateTime $from)
{
$criteria = new Criteria();
$criteria->andWhere(
$criteria::expr()->eq('from', $from)
);
return $this->matching($criteria);
}
Или, если вы всегда хотите использовать «сейчас»:
function getStuff()
{
$criteria = new Criteria();
$criteria->andWhere(
$criteria::expr()->eq('from', new DateTime('now'))
);
return $this->matching($criteria);
}
Почемув качестве параметра
Возможно, вы захотите разрешить пользователю устанавливать дату (и / или время) и, таким образом, передавать его из контроллера и / или службы
* 1014.*
Почему «сейчас» Возможно, вы захотите всегда возвращать что-то из / до настоящего момента.
Mind, вместо 'now'
вы можете использовать другой относительный формат для установки значения по умолчанию DateTime, например:
$dateTime = new DateTime('last day of'); // Sets date to last day of the current month
Подробнее об использовании Doctrine Criteria
Иполный класс документов