2011-11-25 9 views
12

は、私が)(からCreateQueryを使用してSymfony2の中に以下のクエリを作成する方法Symfony2の教義クエリ

select * from Post inner join Category on Post.category_id=Category.id inner join Priority on Post.priority_id=Priority.id order by priority_number desc 

を知らない私はここで、リポジトリのクラスを使用し、機能

を書きました私はこの機能を使用する場合
public function findAllOrderedByPriorityPost() 
    { 

     return $this->getEntityManager() 
       ->createQuery('select p,c,pr from RodasysfourmBundle:Post p inner join 
RodasysfourmBundle:Category c inner join RodasysfourmBundle:Priority pr order by pr.priorityNumber desc') 
       ->getResult(); 
    } 

は、私は以下のエラー最高のカスタムrepositoでこのクエリを使用している方法も

[Semantical Error] line 0, col 85 near 'c inner join': Error: Identification Variable RodasysfourmBundle:Category used in join path expression but was not defined before. 

を得ましたまたはサービスとして?

ありがとうございました。

答えて

9

DQLは、テーブルを結合する方法を知ることができません。 1つのエンティティとそのフィールド(リレーションを持つ可能性があります)だけで作業できます。

select p,c,pr from RodasysfourmBundle:Post p inner join 
p.Category c inner join c.Priority pr order by pr.priorityNumber desc 
関連する問題