Как и в Doctrine 2.1, оператор CASE WHEN поддерживается, но на нем не так много документации. Моя цель - установить логическое значение, чтобы узнать, понравилось ли пользователю пользователю:
->addSelect("CASE WHEN f.photo is NULL THEN false ELSE true END as is_favorited")
->leftJoin("p.favorites", 'f', 'WITH', 'f.owner = :viewer')
->orderBy("p.date_posted", "DESC")
->setParameters(array("owner" => $owner, "viewer" => $viewer));
Но поскольку мои сущности трансформируются в json с помощью JMSSerializer, я хотел бы установить результат CASE WHEN как свойство для объекта.
->addSelect("CASE WHEN f.photo is NULL THEN false ELSE true END as p.is_favorited")
Но, к счастью, Doctrine, похоже, не нравится:
[Синтаксическая ошибка] строка 0, col 65: Ошибка: Ожидаемая доктрина\ORM\Запрос\Lexer:: T_FROM, полученная..
Есть ли альтернатива настройке созданных свойств DQL для объекта?