Выборка фреймворка Zend

#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 , вы, вероятно, хотите, чтобы он был an abstract class .

Ответ №2:

ДА. Просто определите новый метод fetchAll() в вашей модели с той же конструкцией, что и метод Zend_db_table_abstract (т. Е. тот же ввод / вывод), а затем в конце вашего метода вызовите родительский метод:

родитель::fetchAll($параметры)

Эндрю