2012-03-19 13 views
6

में saveAll() से डाले गए आईडी को पुनर्प्राप्त करना saveAll() का उपयोग करके केपीपीएचपी में एकाधिक रिकॉर्ड सहेजने के लिए, मैं उन्हें तालिका में सफलतापूर्वक सहेजने में सक्षम हूं। लेकिन उन सहेजी गई पंक्तियों की आईडी पुनर्प्राप्त करते समय समस्या उत्पन्न होती है। LastInsertID() यहां केवल एक ही अंतिम आईडी लौटाता है। मैं saveAll() का उपयोग करके डाली गई सभी अंतिम डाली गई आईडी कैसे प्राप्त कर सकता हूं?केकपीएचपी

उत्तर

23

afterSave समारोह एक saveAll निष्पादन में बचाने प्रत्येक व्यक्ति के बाद कहा जाता है, तो आप कर सकता है: अपने AppModel


class AppModel extends Model { 
    var $inserted_ids = array(); 

    function afterSave($created) { 
     if($created) { 
      $this->inserted_ids[] = $this->getInsertID(); 
     } 
     return true; 
    } 
} 

आप किसी भी मॉडल में इस कोड को जगह कर सकते हैं और यह ठीक काम करना चाहिए। फिर अपने नियंत्रक में saveAll के बाद आईडी वापस जाने के लिए, अगर आप इस तरह तो करना होगा:


if($this->Post->saveAll($posts)) { 
    $post_ids=$this->Post->inserted_ids; //contains insert_ids 
} 

आशा है कि यह

+0

Thanx सुधीर मदद करता है, मैं इस कोशिश की, लेकिन इसकी एक त्रुटि फेंक अपरिभाषित संपत्ति: AppModel: inserted_ids मेरे नियंत्रक में , कारण क्या हो सकता है .. ?? – Vineet

+0

@ vin.it $ inseted_ids – Ehtesham

+0

@ehtesham से पहले var को हटा दें: thanx ehtesham.i ने कोशिश की लेकिन यह अभी भी वही त्रुटि फेंक रहा है। कोई अन्य संभावनाएं ..? – Vineet

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