2009-09-23 2 views
0

Есть ли способ добавить область по умолчанию к модели на основе Zend_Db_Table_Abstract.Zend_Db_Table_Abstract и значение по умолчанию

Я хочу иметь возможность запросить модель с некоторыми условиями, принятыми по умолчанию.

например.

  • удален = ложь
  • имя порядка по возрастанию

ответ

1

Вы можете переопределить метод 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); 
} 
+0

Я читал об этом раньше здесь, но, кажется, не могу получить его работу: S http://www.zendframeworkinaction.com/2008/01/30/zend_db_table_abstract-in-version-15/ очень странно – sfusion

+0

Что означает «не может показаться, что он работает»? Вы получаете сообщения об ошибках или неправильные результаты или результаты вообще? Вы пытались отладить, что происходит? –

+1

Попробуйте добавить var_dump ($ select -> __ toString()) в методе выше - непосредственно перед вызовом родительского метода и посмотреть, как выглядит сгенерированная строка SQL. –

 Смежные вопросы

  • Нет связанных вопросов^_^