Kann ich die Methode fetchall in einem Modell überschreiben? Ich muss jedes Mal prüfen, ob fetchAll aufgerufen wird. Das Modell erweitert Zend_db_table_abstractZend Framework fetchAll
5
A
Antwort
9
Um diese Methode zu überschreiben, müssten Sie Zend_Db_Table_Abstract ableiten. Wie folgt:
<?php
abstract class My_Db_Table_Abstract extends Zend_Db_Table_Abstract
{
...
public function fetchAll($where, $order)
{
...
}
...
}
Dann stellen Sie sicher, dass Ihre Modelle stattdessen My_Db_Table_Abstract erweitern. Auf diese Weise erben Sie immer die überschriebene fetchAll-Methode.
0
Ja. Definieren Sie einfach eine neue fetchAll() -Methode in Ihrem Modell mit der gleichen Konstruktion wie die Zend_db_table_abstract-Methode (dh gleiche Eingabe/Ausgabe) und rufen Sie dann am Ende der Methode die übergeordnete Methode auf:
parent :: fetchAll ($ params)
Andrew
Da Sie es "Abstract" nennen, möchten Sie wahrscheinlich, dass es eine abstrakte Klasse ist. – chelmertz
Ja, du hast Recht. Ich habe das Beispiel aktualisiert. Vielen Dank. –