2012-09-17 26 views
5

मैं कोडइग्निटर में 'परिणाम ऑब्जेक्ट क्लास' को व्यवस्थित करने के लिए उचित तरीका ढूंढ रहा हूं।कोडिनेटर में परिणाम ऑब्जेक्ट क्लास कहां रखना है और कैसे लोड करें?

तुम भी परिणाम के लिए एक स्ट्रिंग पारित कर सकते हैं() जो प्रत्येक परिणाम वस्तु (ध्यान दें: इस वर्ग लोड किया जाना चाहिए) के लिए इन्स्तांत करने के लिए एक वर्ग का प्रतिनिधित्व करता है:

इन कक्षाओं आमतौर पर documentation में वर्णित के रूप मॉडल में उपयोग किया जाता है
$query = $this->db->query("SELECT * FROM users;"); 

foreach ($query->result('User') as $row) 
{ 
    echo $row->name; // call attributes 
    echo $row->reverse_name(); // or methods defined on the 'User' class 
} 

तो, जहां 'उपयोगकर्ता' वर्ग डाल दिया और वहाँ किसी भी 'सरकारी' जिस तरह से यह कैसे लोड करने के लिए है के लिए?

उत्तर

2

लाइब्रेरी का उपयोग करने का प्रयास करें।

प्लेस आवेदन/पुस्तकालयों फ़ोल्डर में अपने वर्ग, तो लोडर का उपयोग लोड करने के लिए:

$this->load->library('user'); 
+0

बिल्कुल नहीं, क्योंकि यह उपयोगकर्ता वर्ग का नया उदाहरण बनाएगा और मैं उस खाली वस्तु को स्मृति में नहीं रखना चाहता हूं। और निश्चित रूप से, परिणाम वस्तु वर्ग पुस्तकालयों में बिल्कुल नहीं हैं। – sasa

+0

अपनी कक्षाओं वाली एक php फ़ाइल लोड करने के लिए $-- लोड फ़ाइल() लोड करें –

0

आप के लिए नहीं वास्तव में क्या कह रहे हैं, लेकिन मैं अक्सर साथ एक MY_Model का उपयोग करें:

public function merge_object(&$object, $data){ 

    if (is_object($data)) { 
     $data = get_object_vars($data); 
    } 
    if (!empty($data)) { 
     foreach ($data as $property => $value) { 
      if (!property_exists($object, $property)) { 
       $object->$property = $value; 
      } 
     } 
    } 
    return $object; 
} 

और फिर $-- merge_object ($ यह, $ डेटा) कॉल करें; __construct ($ data = array())

जब आप अब मॉडल फ़ंक्शन को कॉल करते हैं, तो यह मॉडल क्लास का एक उदाहरण भी देता है, और इसलिए आप इसकी किसी भी विधि तक पहुंच सकते हैं। यह अनिवार्य रूप से आप जो करने की कोशिश कर रहे हैं वह करता है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^