2008-10-09 23 views
5

Puis-je remplacer la méthode fetchall dans un modèle? J'ai besoin de vérifier sth à chaque fois que fetchAll est appelé. Le modèle s'étend Zend_db_table_abstractZend Framework fetchAll

Répondre

9

Pour remplacer cette méthode, vous devez sous-classer Zend_Db_Table_Abstract. Comme si:

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

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

    ... 
} 

Ensuite, assurez-vous que vos modèles étendent My_Db_Table_Abstract à la place. De cette façon, vous héritez toujours de votre méthode fetchAll substituée.

+0

Puisque vous nommant 'Abstract', vous voulez sans doute que ce soit un' abstrait class'. – chelmertz

+0

Oui, vous avez raison. J'ai mis à jour l'exemple. Merci. –

0

Oui. Définissez simplement une nouvelle méthode fetchAll() dans votre modèle avec la même construction que la méthode Zend_db_table_abstract (ie même entrée/sortie) puis à la fin de votre méthode appelez la méthode parent:

parent :: fetchAll ($ params)

Andrew