Я портирую простое веб-приложение, написанное на CodeIgniter, на пакет Symfony2. Я новичок в Symfony2 и Doctrine, и у меня проблема с одним SQL-запросом, который я хочу переписать на DQL. Я все готов к работе в своем пакете, я создал класс Entity, и я могу вставлять данные в базу данных и выполнять простые запросы в способе объектно-ориентированного программирования, который предоставляет Symfony2. К сожалению, я понятия не имею, как реализовать этот SQL-запрос в DQL:
$sql = "SELECT * FROM t WHERE
UNIX_TIMESTAMP(t.date) > ".(time()-300)." AND
ROUND(t.x,3) = ".round($x, 3);
Как видите, есть вызовы некоторых функций SQL, которые необходимо выполнить на сервере базы данных. Доктрина не может понять эти призывы. Конечно, у меня есть возможность выйти из использования Doctrine и выполнить этот запрос, используя базовый PDO внутри моего пакета Symfony2, но я хотел бы воспользоваться всеми преимуществами использования Symfony2 и Doctrine. Поэтому я хотел бы, чтобы это было сделано в ООП или с помощью умного запроса DQL, который понимает что-то вроде:
$em->createQuery("SELECT t FROM MyTestBundle:MyEntity t WHERE t.x = :x")
->setParameter("x", round($x,3));
но возможность переписать мой SQL-запрос из старого приложения в новый пакет - необходимость. Пожалуйста, помогите мне найти правильное решение.