2008-10-09 9 views
5

क्या मैं मॉडल में fetchall विधि को ओवरराइड कर सकता हूं? मुझे हर बार feth जांचने की जरूरत है सभी को बुलाया जाता है। मॉडल Zend_db_table_abstractज़ेंड फ्रेमवर्क fetchAll

उत्तर

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

चूंकि आप इसे 'सार' नाम दे रहे हैं, तो शायद आप इसे 'अमूर्त वर्ग' बनाना चाहते हैं। – chelmertz

+0

हाँ, आप सही हैं। मैंने उदाहरण अपडेट किया है। धन्यवाद। –

0

हां। बस अपनी विधि के अंत में Zend_db_table_abstract विधि (यानी एक ही इनपुट/आउटपुट) के समान निर्माण के साथ अपने मॉडल में एक नई fetchAll() विधि को परिभाषित करें, पेरेंट विधि:

पैरेंट :: fetchAll ($ params)

एंड्रयू

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