Я пытаюсь выбрать из таблицы, где выбранная продолжительность, деленная на длительность записи, равна нулю.
$qb = $em->createQueryBuilder() ->from('AcmeBlogBundle:Entry', 'e') ->andWhere(":duration % e.duration = 0") ->setParameter('duration', $duration);
Это возвращает ошибку:
[Syntax Error] line 0, col 226: Error: Expected =, <, <=, <>, >, >=, !=, got '%'
Это будет работать в простом SQL. Кто-нибудь знает, как это сделать с помощью построителя запросов Doctrine?
Символ %
не является оператором DQL. Попробуй это:
$qb = $em->createQueryBuilder() ->from('AcmeBlogBundle:Entry', 'e') ->andWhere("mod(:duration,e.duration) = 0") ->setParameter('duration', $duration);
Или прочитайте это: http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/dql-doctrine-query-language.html . Пункт 12.5.1.
MOD(a, b) - Return a MOD b.