2011-11-25 17 views
12

मैं symfony2 में नए हूँ, मैं नहीं जानता कि कैसे symfony2 में नीचे दिए गए क्वेरी createQuery का उपयोग कर()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(); 
    } 

जब मैं इस समारोह के लिए इस्तेमाल किया, मैं नीचे त्रुटि

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

अलावा कौन सी विधि सबसे अच्छा एक कस्टम reposito में इस क्वेरी उपयोग कर रहा है मिल गया आरई या एक सेवा के रूप में?

किसी भी मदद की सराहना की।

उत्तर

9

DQL तालिकाओं में शामिल होने के लिए कैसे यदि आप एक संदर्भित इकाई का नाम निर्दिष्ट पता नहीं चलेगा। आप केवल एक इकाई और उसके क्षेत्रों (जो संबंध हो सकते हैं) के साथ काम कर सकते हैं।

select p,c,pr from RodasysfourmBundle:Post p inner join 
p.Category c inner join c.Priority pr order by pr.priorityNumber desc 
संबंधित मुद्दे