php - Doctrine: How could I get all participants of many-to-many relationships -
मेरे पास 3 टेबल है: ["ऑर्डर", "ऑर्डर_ट्यू_गुड", "गुड्स"]
I ऑर्डर_आईडी द्वारा कई-से-कई रिश्तों के सभी प्रतिभागियों को प्राप्त करना चाहते हैं, ताकि ऐसा कुछ कर सकें:
$ आदेश = सिद्धांत :: getTable ('order') - & gt; findOneById (1); $ आदेश - & gt; लोडरेलीटेड ('माल'); विदेशी मुद्रा ($ आदेश- & gt; माल $ उत्पाद के रूप में) {...}
लेकिन यह काम नहीं है सब कुछ मैं निराशा की कोशिश करने के बाद आप मुझे कुछ सहायक काउंसिल दे सकते हैं।
अतिरिक्त
नेस्टेड मान प्राप्त करने के लिए कुछ ऑपरेशन की आवश्यकता है:
$ this-> ऑर्डर ऑब्जेक्ट- & gt; loadReference ( 'StoreOrderToItem'); विदेशी मुद्रा ($ इस- & gt; ऑर्डर ऑब्जेक्ट- & gt; स्टोर ऑर्डर टॉइटम को $ ऑर्डरटोइटमैटम के रूप में) {$ ऑर्डरटोइटम- & gt; लोडरेफरेंस ('स्टोर इटैम'); }
डीबी के लिए और कुछ प्रश्नों, पूरा वस्तु प्राप्त करने के लिए:
का चयन करें s.order_id s__order_id के रूप में, s.goods_id के रूप में s__goods_id, s.count के रूप में s__count, s.price से store_order_to_item रों s__price जहां (s.order_id में (?)) के रूप में s__id s.id का चयन करें, s.section_id के रूप में s__section_id, s.payment_strategy_id के रूप में s__payment_strategy_id, s.name s__name के रूप में, s__title के रूप में s.title , s.description s__description, s.price s__price के रूप में, s.creation_date s__creation_date के रूप में, s.status s__status के रूप में, s.sort के रूप में s__sort store_item से यहीं से (s.id =?) के रूप में s__id s.id का चयन करें, रों। s__name के रूप में के रूप में s__section_id, s.payment_strategy_id के रूप में s__payment_strategy_id, s.name SECTION_ID, के रूप में s__title, s.description s__description, s.price s__price के रूप में, s.creation_date s__creation_date के रूप में, s.status s__status के रूप में के रूप में s.title, s.sort के रूप में एसडीएआर से स्टोर_इटम एस WHERE (s.id =?)
क्या होगा अगर डीबी में केवल एक या दो पंक्तियां नहीं हैं, तो हजार पंक्तियाँ हैं एक क्वेरी में सभी को एक साथ संयोजित करने की आवश्यकता है ( LEFT JOIN
operands के साथ) यह कैसे कर सकता है, यदि सभी रिश्ते सही हैं? सिद्धांत मेरे लिए इस समस्या का खुलासा करने में विफल रहा है। मुझे आशा है कि आप मेरी मदद कर सकते हैं।
पीएस: मेरी अंग्रेजी के लिए क्षमा करें, मैं इसे 30 मिनट से ऊपर लिखता हूं =))
मैं वें समाधान नहीं मिला:
$ q = $ इस- & gt; createQuery ( 'dctrn_findProduct') - & gt; ( 'JV_Model_StoreOrder ओ') से - & gt ; leftJoin ( 'o.StoreOrderToItem Oi साथ oi.order_id = o.id') - & gt; leftJoin ( 'oi.StoreItem मैं i.id = oi.goods_id') - & gt; addWhere ( '? o.id =' , $ Order_id); $ R = $ q- & gt; निष्पादित करें (सरणी () (), Doctrine_Core :: HYDRATE_ARRAY);
वह mysql के रूप में कार्य नहीं करता है, का उपयोग करना एसक्यूएल क्वेरीज़ नहीं है।
Comments
Post a Comment