Подтвердить что ты не робот

Запрос по запросу Symfony2 Doctrine

Я новичок в symfony2, я не знаю, как написать ниже запрос в symfony2 с помощью createQuery()

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();
    }

когда я использовал эту функцию, я получил ошибку ниже

[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. 

Также какой метод лучше всего использовать в запросе в пользовательском репозитории или в качестве службы?

любая помощь оценена.

4b9b3361

Ответ 1

DQL в doctrine2 не знает, как присоединиться к таблицам, если вы укажете имя ссылочного объекта. Вы можете работать только с одним объектом и его полями (которые могут иметь отношения).

select p,c,pr from RodasysfourmBundle:Post p inner join 
p.Category c inner join c.Priority pr order by pr.priorityNumber desc