2011-06-01 21 views
5

मैं केकपीएचपी के साथ नया हूं और एक समझदार व्यवहार के साथ एक मॉडल वर्ग की पढ़ने() विधि को कॉल करने के तरीके को समझ नहीं सकता। मुझे लगता है()केकपीएचपी - क्या पढ़ने योग्य() विधि के साथ कंटेनबल व्यवहार का उपयोग करना संभव है?

$this->T->find('all', array (
    'contain' => array (
     'C', 
     'L' => array (
      'fields' => array ('L.id, L.time'), 
      'I' => array (
       'fields' => array ('I.id','I.time'), 
       'J.name', 
       'J.id' 
      ) 
     ) 
    ) 
); 

काम करता है कि बस के रूप में मैं उम्मीद है, लेकिन मैं टी के सभी उदाहरणों पाने के लिए नहीं करना चाहते हैं, लेकिन इसके बजाय id = $ आईडी के साथ एक तो मैं इसे पारित कर सकते हैं के साथ निम्न कर सकते हैं 'देखें' देखें। लेकिन खोजने के लिए पारित सरणी काम नहीं करती है

$this->T->read(
array (
     'contain' => array (
      'C', 
      'L' => array (
       'fields' => array ('L.id, L.time'), 
       'I' => array (
        'fields' => array ('I.id','I.time'), 
        'J.name', 
        'J.id' 
       ) 
      ) 
     ) 
, $id) 

क्या ऐसा करने का कोई तरीका है?

उत्तर

16

आप से पहले पढ़ने() कॉल भी सेट कर सकते हैं:

$this->T->id = $id; 
$this->T->contain(array(...)); 
$this->T->read(); 
+1

जैसा कि मॉडल मॉडल-> डेटा चर सेट नहीं करता है, ढूंढने (पहले) का उपयोग करने का प्रभाव और पढ़ना() समान नहीं है। यदि वह चाहता था कि वह आंकड़े देखने के लिए डेटा था, तो खोज (पहला) समाधान ठीक है, लेकिन डनहमज्ज़ ने कहा - सवाल को स्पष्टता/उत्तर के लिए रिश्ते/रिश्ते के लिए सही करने की आवश्यकता है या जवाब गलत है। यदि * I * वास्तव में मॉडल :: के साथ कंटेनबल का उपयोग करने की आवश्यकता है और पढ़ें (पहले) एक अच्छा समाधान नहीं था तो यह एक बेकार खोज परिणाम होगा। –

+0

मेरी उपरोक्त टिप्पणी को पारदर्शी करने के लिए - यह उत्तर लेखक के रूप में प्रश्न के लिए सही उत्तर है –

+0

हां, मैं चाहता हूं कि डेटा को देखने के लिए स्थानांतरित किया जाए। मुझे खेद है कि मैंने सही सवाल व्यक्त नहीं किया था। यह अब तय है, धन्यवाद, कार्लोस – Gustavo

3

मेरा मानना ​​है कि आप व्यवहार सेट कर सकते हैं इतना है कि यह read() पर लागू होता है, लेकिन आप यह भी find('first') उपयोग कर सकते हैं डेटा सब है अगर आप की जरूरत:

$this->T->find('first', array (
    'conditions' => array(
     'T.id' => $id 
    ), 
    'contain' => array (
     'C', 
     'L' => array (
      'fields' => array ('L.id, L.time'), 
      'I' => array (
       'fields' => array ('I.id','I.time'), 
       'J.name', 
       'J.id' 
      ) 
     ) 
    ) 
); 
+0

खोज ('पहला', ...) काम किया। धन्यवाद! – Gustavo

+1

मैं उलझन में हूं कि आपने इसे क्यों स्वीकार कर लिया है, सवाल है ".. पढ़ने के लिए कंटेनर व्यवहार का उपयोग करें() विधि" - यह पढ़ने() विधि का उपयोग नहीं कर रहा है। – Dunhamzzz

+0

उसने अपनी (अंतर्निहित) समस्या हल की। – JJJ