Я новичок в 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.
Также какой метод лучше всего использовать в запросе в пользовательском репозитории или в качестве службы?
любая помощь оценивается.
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
Я думаю, что эта ссылка может ответить на ваш вопрос: Ошибка: Идентификационная переменная, используемая в выражении пути соединения, но не была определена до