php - symfony2 & doctrine orderBy/DQL error -


मेरे पास 2 संस्थाएं निर्धारित हैं:

  • राज्य इकाई
  • शहर इकाई

मैं राज्य इकाई का चयन करने के लिए और स्वचालित रूप से शहर इकाई में शामिल होने और राज्य के नाम से परिणाम आदेश की कोशिश कर रहा हूँ। हालांकि, मुझे यह त्रुटि मिलती है:

  [सिंटेक्स त्रुटि] लाइन 0, कॉल 74: त्रुटि: अपेक्षित शब्दशः, 'बी' ' 

मेरा कोड क्वेरी बना है:

  $ statesQuery = $ this- & gt; getEm () - & gt; createQueryBuilder (); $ StatesQuery- & gt; चयन ( "सेंट"); $ StatesQuery- से ("कोर बंडल: राज्य", "सेंट"); $ राज्यों- & gt; बाएं जोन ("कोर बंडल: शहर", "सीटी"); $ StatesQuery- & gt; addSelect ( "सीटी"); $ राज्यों- & gt; आदेश बाय ("st.name", "ASC"); $ StatesQuery = $ statesQuery- & gt; getQuery (); $ राज्य = $ राज्यों- & gt; getResult ();  

यदि मैं आदेश को विधि से निकाल देता हूं तो मुझे निम्न त्रुटि मिलती है:

  [Syntax error] लाइन 0, कोले -1: त्रुटि: अपेक्षित सिद्धांत \ ORM \ Query \ Lexer :: T_WITH, स्ट्रिंग का अंत हो गया  

डीक्यूएल जनरेट किए गए प्रश्न (ऑर्डर द्वारा और डब्ल्यू / ओ ऑर्डरबी के साथ):

  का चयन करें सेंट, सीटी से कोर बंडल: स्टेट स्टैड दैट जॉय कोर बंडल: सिटी सीटी आदेश द्वारा s.name एएससी चयन सेंट, सीटी से कोर बंडल: स्टेट स्ट्रीट बाएं जोड़ी कोर बंडल: सिटी सीटी   

राज्य इकाई:

  Ec \ CoreBundle \ Entity \ State: type: entity table: state id: id: type: integer nullable: false signigned: false comment: '' id: true generator: strategy: IDENTITY फ़ील्ड: name: type: string नगण्य: गलत लंबाई: 255 दोस्ताना_रिल: प्रकार: स्ट्रिंग नल योग्य: झूठी लम्बाई: 255 एकटैम: शहरों: लक्ष्यइन्टीटी: सिटी मैप किया गया: राज्य एकओफ़ोन: देश: लक्ष्यइन्तिटी: देश जीवन चक्र कॉलबैक: {}  

< strong> और शहर इकाई:

  Ec \ CoreBundle \ Entity \ शहर: प्रकार: इकाई तालिका: शहर आईडी: आईडी: प्रकार: पूर्णांक नल योग्य: गलत अहस्ताक्षरित: गलत टिप्पणी: '' आईडी: सच्चे जनरेटर: रणनीति: पहचान फ़ील्ड: नाम: प्रकार: स्ट्रिंग नल योग्य: झूठी लंबाई: 255 फ्रेंडली_अर्नल: प्रकार: स्ट्रिंग नल योग्य: झूठी लंबाई: 255 बहुत सारे एक: राज्य: लक्ष्य एंटीटी: राज्य इनवर्ड्स द्वारा: शहर जीवन चक्र कॉलबैक: {}  

यदि आप राज्यों (और संबद्ध शहरों) का संग्रह पुनर्प्राप्त करना चाहते हैं, तो यह पर्याप्त है: < / P>

  // src / AcmeBundle / नियंत्रक / MyController.php // ... $ statesQuery = $ this- & gt; getDoctrine () - & gt; getManager () - & gt; createQueryBuilder (); $ StatesQuery-> ("कोर बंडल: राज्य", "सेंट") - & gt; आदेश बाय ("st.name", "ASC") से चुनें ("सेंट") - & gt; $ States = $ statesQuery- & gt; getQuery () - & gt; getResult ();  

तो शहर आलसी लोड हो जाएगा। आलसी / उत्सुक लोडिंग के बारे में अधिक जानकारी के लिए

संपादित करें: ठीक है, अगर आपको इसकी आवश्यकता केवल एक ही स्थान पर करना है, तो बस ऐसा करें:

  $ StatesQuery = $ this- & gt; getDoctrine () - & gt; getManager () - & gt; createQueryBuilder (); ("कोर बंडल: राज्य", "सेंट") - gt; leftJoin ("st.cities", "ct") - & gt; आदेश बाय ("सेंट .name "," ASC "); $ States = $ statesQuery- & gt; getQuery () - & gt; getResult ();  

Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -