2014-02-26 2 views
2

DQL-SELECT 부분에 외부 매개 변수를 사용하려하지만 오류로 인해 작동하지 않습니다.DQL select 문 (Symfony2/Doctrine)의 매개 변수

내가 노력하고있어 :

$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'과 선택의 PARAM ('정적 값'의 가치의 가치 이 경우는 param으로). | 예상 IdentificationVariable :

오류 :

는 나는 다음과 같은 오류가 발생합니다 ScalarExpression | 집계 표현 | FunctionDeclaration | PartialObjectExpression | "("Subselect ")"| CaseExpression,있어 ': param_doesnt_work'

거기에 매개 변수를 사용할 수 있습니까 또는 거기에 대한 completly 다른 해결책이 무엇입니까? 예제를 찾을 수 없습니다.

답변

5

방금 ​​같은 문제가있었습니다.

$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', 
)); 

그냥 괄호 아래에 매개 변수를 추가해야한다 여기

은 내가 찾은 솔루션입니다.

+0

작은 세부 사항이 문서에서 누락되었습니다. :). 고마워요! – hattila

+0

createQueryBuilder를 사용할 때 다음과 같이 괄호 밖의 "param"을 이동해야했습니다 : '-> select ('me.ID, (: param_works) param')' – Shumoapp