symfony 프레임 워크는 php를 통해 실행되어 일부 유지 보수 작업을 수행 할 수있는 app/console 파일을 제공합니다. 또한 사용자가 DQL 쿼리를 실행할 수 있습니다.Doctrine은 특정 필드를 선택할 수 없습니다.
# php app/console doctrine:query:dql --hydrate=array \
'SELECT u.id, u.nameFirst, u.nameLast FROM DatabaseBundle:User u'
array
0 =>
array
'id' => string '1' (length=1)
'nameFirst' => string 'jaroslav' (length=8)
'nameLast' => string 'rakhmatoullin' (length=13)
1 =>
array
'id' => string '2' (length=1)
'nameFirst' => string 'Båb Kåre' (length=10)
'nameLast' => string 'Ytrefoss' (length=8)
세 개의 특정 열을 선택했는지 확인합니다. 내가 겪고있는 문제는 두 테이블을 조인 할 때 비슷한 쿼리를 통해 오류가 발생한다는 것입니다.
# php app/console doctrine:query:dql --hydrate=array \
'SELECT u.id , r FROM DatabaseBundle:User u JOIN u.roles r'
[Doctrine\ORM\Query\QueryException]
[Semantical Error] line 0, col -1 near 'SELECT u.id ,':
Error: Cannot select entity through identification variables
without choosing at least one root entity alias.
전체 사용자가 자신의 역할과 합류 다음 반환 : 분명히
# php app/console doctrine:query:dql --hydrate=array \
'SELECT u, r FROM DatabaseBundle:User u JOIN u.roles r'
, 내가 모르는 뭔가가있어.
아이디어가 있으십니까? 적절한 문서에 대한 링크도 고맙겠습니다. documentation on "Partial Object Syntax"에서
나는 아주 잘 오류 메시지를 이해하지 않는,하지만 난 유사한 오류 메시지가 발생하고, r.id을 선택하여 내 문제를 해결 기억, 그래서 당신이 더 많은 필드를 선택하려고한다고 생각합니다. – greg0ire
어떨까요? ''SELECT u.id, r. * FROM DatabaseBundle : User u JOIN u.roles r'' – jere
greg0ire 맞습니다. 나는 당신이 하나의 필드와 같은 쿼리에서 "엔터티"개체를 선택할 수 없다고 생각합니다. – jere