#php #zend-framework #model #overriding #fetchall
Вопрос:
Могу ли я переопределить метод fetchall в модели? Мне нужно проверять sth каждый раз, когда вызывается вызов. Модель расширяет Zend_db_table_abstract
Ответ №1:
Чтобы переопределить этот метод, вам потребуется подкласс Zend_Db_Table_Abstract. Вот так:
<?php
abstract class My_Db_Table_Abstract extends Zend_Db_Table_Abstract
{
...
public function fetchAll($where, $order)
{
...
}
...
}
Затем убедитесь, что ваши модели вместо этого расширяют My_Db_Table_Abstract. Таким образом, вы всегда будете наследовать свой переопределенный метод fetchAll.
Комментарии:
1. Поскольку вы называете его
Abstract
, вы, вероятно, хотите, чтобы он был anabstract class
.
Ответ №2:
ДА. Просто определите новый метод fetchAll() в вашей модели с той же конструкцией, что и метод Zend_db_table_abstract (т. Е. тот же ввод / вывод), а затем в конце вашего метода вызовите родительский метод:
родитель::fetchAll($параметры)
Эндрю