Я пытаюсь использовать внешние параметры в части SELECT DQL, но это не работает из-за ошибки.
Что я пытаюсь:
$query = $this->getEntityManager() ->createQuery(" SELECT me.column_one, :param_doesnt_work param FROM CompanyMyBundle:MyEntity me WHERE me.column_one = :param_one AND me.column_two = :param_two ")->setParameters(array( 'param_doesnt_work' => 'A static value', 'param_one' => 'some param', 'param_two' => 'another param', ));
Я хотел бы получить в результате два столбца, значение «column_one» и значение параметра в Select («Статическое значение» в данном случае As param).
Я получаю следующую ошибку:
Ошибка: Ожидаемая идентификацияVariable | Скалярное выражение | Агрегатное выражение | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, получил ': param_doesnt_work'
Возможно ли использовать там параметры, или для этого существует совершенно другое решение? Не удалось найти какой-либо пример.
У меня была такая же проблема.
Вот решение, которое я нашел:
$query = $this->getEntityManager() ->createQuery(" SELECT me.column_one, (:param_doesnt_work param) FROM CompanyMyBundle:MyEntity me WHERE me.column_one = :param_one AND me.column_two = :param_two ")->setParameters(array( 'param_doesnt_work' => 'A static value', 'param_one' => 'some param', 'param_two' => 'another param', ));
Вам просто нужно поставить свой параметр в круглые скобки.