Zend_Db_Table_Abstract和默认范围

时间:2009-09-23 08:37:38

标签: zend-framework zend-db zend-db-table

有没有办法将默认范围添加到基于Zend_Db_Table_Abstract的模型。

我希望能够查询一些模型,并将某些条件视为默认值。

e.g。

  • deleted = false
  • 订单名称asc

1 个答案:

答案 0 :(得分:0)

在从数据库适配器检索行之前,您可以覆盖Zend_Db_Table_Abstract:: _fetch()方法并修改其中生成的Zend_Db_Table_Select。据我所知,fetch*中的所有find()方法和Zend_Db_Table_Abstract归结为此通用行检索方法(自然除了Zend_Db_Table_Abstract::fetchNew()之外),因此修改后的代码将会每次从数据库中检索行时都会调用它。

/**
 * Support method for fetching rows.
 *
 * @param  Zend_Db_Table_Select $select  query options.
 * @return array An array containing the row results in FETCH_ASSOC mode.
 */
protected function _fetch(Zend_Db_Table_Select $select)
{
    $select->where('deleted = false')->order('name asc');
    return parent:: _fetch($select);
}