2008-10-09 31 views
5

¿Puedo reemplazar el método fetchall en un modelo? Necesito verificar algo cada vez que se llame a fetchAll. El modelo se extiende Zend_db_table_abstractZend Framework fetchAll

Respuesta

9

Para anular este método, deberá subclase Zend_Db_Table_Abstract. De esta manera:

<?php 
abstract class My_Db_Table_Abstract extends Zend_Db_Table_Abstract 
{ 
    ... 

    public function fetchAll($where, $order) 
    { 
     ... 
    } 

    ... 
} 

Luego, asegúrese de que sus modelos extiendan My_Db_Table_Abstract en su lugar. De esta forma, siempre heredará su método fetchAll reemplazado.

+0

Dado que lo está llamando 'Abstracto', es probable que desee que sea una' clase abstracta '. – chelmertz

+0

Sí, tienes razón. He actualizado el ejemplo. Gracias. –

0

Sí. Simplemente defina un nuevo método fetchAll() en su modelo con la misma construcción que el método Zend_db_table_abstract (es decir, la misma entrada/salida) y al final de su método llame al método principal:

parent :: fetchAll ($ params)

Andrew