2008-10-09 35 views
5

Tôi có thể ghi đè phương thức fetchall trong một mô hình không? Tôi cần phải kiểm tra sth everytime fetchAll được gọi. Mô hình mở rộng Zend_db_table_abstractZend Framework fetchAll

Trả lời

9

Để ghi đè phương thức này, bạn cần phải phân lớp Zend_Db_Table_Abstract. Giống như vậy:

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

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

    ... 
} 

Sau đó, hãy đảm bảo mô hình của bạn mở rộng My_Db_Table_Abstract thay thế. Bằng cách này, bạn sẽ luôn kế thừa phương thức fetchAll được ghi đè của mình.

+0

Vì bạn đặt tên nó là 'Tóm tắt', bạn có thể muốn nó là một 'lớp trừu tượng'. – chelmertz

+0

Vâng, bạn nói đúng. Tôi đã cập nhật ví dụ. Cảm ơn. –

0

Có. Chỉ cần định nghĩa phương thức fetchAll() mới trong mô hình của bạn với cùng cấu trúc như phương thức Zend_db_table_abstract (tức là đầu vào/đầu ra tương tự), sau đó ở cuối phương thức, gọi phương thức cha:

parent :: fetchAll ($ params)

Andrew