CakePHP JOIN के साथ विधि खोजें
CakePHP खोज विधि तालिकाओं में शामिल होने सहित डेटाबेस से डेटा पुनर्प्राप्त करने का एक शक्तिशाली तरीका प्रदान करती है। यह आलेख केकपीएचपी की खोज विधि का उपयोग करके जॉइन क्वेरी करने के लिए दो तरीकों को प्रदर्शित करता है। संयमित व्यवहार. निम्नलिखित मॉडल संबंधों पर विचार करें:
वर्ग उपयोगकर्ता ऐपमॉडल का विस्तार करता है { सार्वजनिक $hasMany = सरणी('संदेश'); } क्लास संदेश ऐपमॉडल का विस्तार करता है { सार्वजनिक $belongsTo = सरणी('उपयोगकर्ता'); }
इस सेटअप के साथ, आप MessagesController से निम्नलिखित क्वेरी निष्पादित कर सकते हैं:class User extends AppModel {
public $hasMany = array('Message');
}
class Message extends AppModel {
public $belongsTo = array('User');
}
यह क्वेरी उन सभी संदेशों को लाएगी जहां प्राप्तकर्ता (फ़ील्ड में) 4 है, और इसमें प्रत्येक संदेश के लिए संबंधित उपयोगकर्ता जानकारी भी शामिल होगी।$this->Message->find('all', array(
'contain' => array('User'),
'conditions' => array(
'Message.to' => 4
),
'order' => 'Message.datetime DESC'
));
वैकल्पिक रूप से, आप केकपीएचपी के सिंटैक्स का उपयोग करके कस्टम जॉइन को परिभाषित कर सकते हैं। यह दृष्टिकोण तब उपयुक्त है जब आपको शामिल होने की शर्तों पर अधिक नियंत्रण की आवश्यकता होती है:
$this->Message->find('all', array( 'जुड़ता है' => सरणी( सारणी( 'तालिका' => 'उपयोगकर्ता', 'उपनाम' => 'यूजरजॉइन', 'प्रकार' => 'अंदर', 'शर्तें' => सरणी( 'UserJoin.id = Message.from' ) ) ), 'शर्तें' => सरणी( 'मैसेज.टू' => 4 ), 'फ़ील्ड' => सरणी('UserJoin.*', 'Message.*'), 'ऑर्डर' => 'मैसेज.डेटटाइम डीईएससी' ));
ध्यान दें कि इस उदाहरण में, आपको केकपीएचपी कन्वेंशन से मेल खाने के लिए फ़ील्ड नाम messages.from को messages.user_id में बदलना होगा।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3