Saturday, 15 June 2013

php - Using Containable with forced joins -


यह मेरी एसोसिएशन है:

  • पसंदीदा belongTo एल्बम
  • एल्बम के लिए है कलाकार
  • कलाकार एचएबीटीएम अनुभाग

    असल में मैं जो करने की कोशिश कर रहा हूं वह मजबूती से जुड़ने के साथ सम्बंधित व्यवहार का उपयोग करता है अगर कोई उपयोगकर्ता अपने सभी पसंदीदा तरीकों को देख रहा है, तो मैं पसंदीदा के साथ जुड़े एल्बम, उस एल्बम से जुड़े कलाकार और कलाकृतियों से संबंधित वर्ग को शामिल करना चाहता हूं। इस तरह के कंटेनबल व्यवहार के साथ ऐसा करने में काफी आसान होगा:

      $ this- & gt; पसंदीदा- & gt; खोजें ('सभी', सरणी ('' '' '=' एल्बम '= & gt; सरणी (' कलाकार '= & gt; सरणी (' अनुभाग ')))));   

    मेरी समस्या यह है कि मैं यह भी चाहता हूं कि उपयोगकर्ता कलाकार और एल्बम नाम से खोज सकें। दुर्भाग्य से मैं ऐसा नहीं कर सकता:

      $ this- & gt; पसंदीदा- & gt; खोजें ('सभी', सरणी (... 'conditions' = & gt; सरणी ('OR' = & Gt; सरणी ('Artist.name like' => gtc: '%'। $ This- & gt; अनुरोध- & gt; क्वेरी ['क्वेरी']। '%', 'एल्बम। नाम की तरह' = & gt; '%' । $ This- & gt; अनुरोध- & gt; क्वेरी ['क्वेरी']। '%'))));   

    क्यों? क्योंकि केक केवल पहले एल्बम में शामिल होगा और यह कलाकार के लिए एक अलग क्वेरी करेगा। तो मुझे क्या करना पड़ा है इसके बजाय कंटेनबल व्यवहार को हटा दें, और मैन्युअल रूप से जुड़ें, ताकि मैं दोनों कलाकार और एल्बम नामों की खोज कर सकूं:

      $ this-> gt; पसंदीदा - & gt; पता ('सभी', सरणी ('फ़ील्ड' = & gt; सरणी ('पसंदीदा। *', 'एल्बम। *', 'कलाकार। *'), 'शर्तें' = & gt; सरणी ('या' =) & Gt; सरणी ('Artist.name की तरह =' = & gt; '%'। $ This- & gt; अनुरोध- & gt; क्वेरी ['क्वेरी']। '%', 'Album.name like' = & gt; '%' $ इस- & gt; अनुरोध- & gt; क्वेरी ['क्वेरी']। '%')), 'Joins' = & gt; सरणी (ऐरे ('तालिका' = & gt; 'एल्बम', 'उपनाम' = & gt; 'एल्बम ',' प्रकार '= & gt; बायीं', 'विदेशी कि' = & gt; झूठी, 'शर्तें' = & gt; सरणी ('एल्बम.आईडी = पसंदीदा। अलबम_आईडी')), सरणी ('तालिका' = & gt; 'कलाकार ',' Alias ​​'= & gt;' कलाकार ',' प्रकार '= & gt;' बाएं ',' विदेशी कि '= & gt; झूठी,' शर्तें '= & gt; सरणी (' Artist.id = Album.artist_id '))) ));   

    यह कलाकार और एल्बम नाम द्वारा खोज करने में सक्षम होने के लिए बहुत अच्छा काम करता है। मेरी समस्या यह है कि मैं उन वर्गों को भी शामिल करना चाहता हूं जो एक कलाकार से संबंधित है मैं बस को कुंजी को वापस नहीं जोड़ सकता क्योंकि केक एल्बम से जुड़ जाएगा, जो एक 'अनन्य तालिका उपनाम' त्रुटि नहीं डाल देगा।

    मेरा प्रश्न यह है कि प्रत्येक कलाकार के साथ लूप किए बिना प्रत्येक कलाकार से जुड़े वर्गों को प्राप्त करने का सबसे अच्छा या सबसे कारगर तरीका क्या है और प्रत्येक के लिए एक अलग क्वेरी करनी चाहिए? या यह क्या मार्ग है जिसे मैं लेना है?

    आप मिश्रण और मैच कर सकते हैं संगत के साथ मिलती है ताकि आपको थोड़ा अलग करने की आवश्यकता हो।

    उड़ने पर कुछ अतिरिक्त संबंध बनाएं और फिर आप शर्तों के लिए नए संबंधों का उपयोग कर सकते हैं कंटेबल के लिए मानक संबंधों का उपयोग कर।

No comments:

Post a Comment