क्या मैं मॉडल में fetchall विधि को ओवरराइड कर सकता हूं? मुझे हर बार feth जांचने की जरूरत है सभी को बुलाया जाता है। मॉडल Zend_db_table_abstractज़ेंड फ्रेमवर्क fetchAll
5
A
उत्तर
9
इस विधि को ओवरराइड करने के लिए आपको Zend_Db_Table_Abstract को उपclass करना होगा। इस तरह:
<?php
abstract class My_Db_Table_Abstract extends Zend_Db_Table_Abstract
{
...
public function fetchAll($where, $order)
{
...
}
...
}
फिर सुनिश्चित करें कि आपके मॉडल इसके बजाय My_Db_Table_Abstract का विस्तार करें। इस तरह, आप हमेशा अपने ओवरराइड fetchAll विधि का वारिस करेंगे।
0
हां। बस अपनी विधि के अंत में Zend_db_table_abstract विधि (यानी एक ही इनपुट/आउटपुट) के समान निर्माण के साथ अपने मॉडल में एक नई fetchAll() विधि को परिभाषित करें, पेरेंट विधि:
पैरेंट :: fetchAll ($ params)
एंड्रयू
चूंकि आप इसे 'सार' नाम दे रहे हैं, तो शायद आप इसे 'अमूर्त वर्ग' बनाना चाहते हैं। – chelmertz
हाँ, आप सही हैं। मैंने उदाहरण अपडेट किया है। धन्यवाद। –