Yii में संबंध बनाकर जॉइन का सबसे अच्छा उपयोग किया जाता है, इस तरह आपको जटिल प्रश्न लिखने की आवश्यकता नहीं होगी
अपने एसक्यूएल टेबल में विदेशी कुंजी जोड़कर प्रारंभ करें (उदाहरण के लिए कुर्सी में एक विदेशी कुंजी रोगी जोड़ें)
अगला यदि आप अपने मॉडल को पुन:उत्पन्न करते हैं तो आप स्वतः जोड़े गए संबंधों को देख सकते हैं (या आप संबंधों को मैन्युअल रूप से जोड़ सकते हैं)
public function relations()
{
return array(
'chairs' => array(self::HAS_MANY, 'chair', 'patientId'),
);
}
और कुर्सी मॉडल में आप संबंध देखेंगे
'patient' => array(self::BELONGS_TO, 'patient', 'patientId'),
अकेले संबंध को परिभाषित करने से आप $model->relationName के रूप में क्वेरी किए गए मॉडल में मानों तक पहुंच प्राप्त कर सकते हैं, यदि आप 'कहां' स्थिति में एक कॉलम का उपयोग करना चाहते हैं, तो अपने मॉडल फ़ंक्शन में निम्न क्वेरी का उपयोग करें
$patients=Patient::model()->findAll(array(
'condition' => "$field like '%$value%'",
'with'=>array('chairs'),
'select'=> "*",
));
"साथ" कीवर्ड महत्वपूर्ण है और क्वेरी में शामिल करने के लिए संबंधों की सूची की एक सरणी ले सकता है। क्वेरी शर्त शामिल सभी तालिकाओं पर लागू होगी, यदि आप किसी अन्य तालिका से किसी फ़ील्ड को क्वेरी नहीं करना चाहते हैं और केवल आउटपुट डेटा लिंक की आवश्यकता है, तो आप यहां "के साथ" कीवर्ड को छोड़ सकते हैं।
और आप रोगी को सौंपी गई कुर्सियों तक
. तक पहुंच सकते हैंforeach($patients as $patient)print_r($patient->chairs);
अन्य दृष्टिकोण भी हैं, जैसे एक चर्चा यहां
संबंधों के साथ अधिक संपर्क प्राप्त करने के लिए, यहां जाएं।