Zend_Paginator возвращает результаты как стандартный массив, но мне нужно, чтобы мои результаты возвращались как экземпляр класса, как мне это сделать?
Например, я хочу, чтобы все статьи новостей нуждались в том, чтобы мои объекты возвращались в качестве экземпляра News_Model_Article
Вы также можете создать собственный адаптер paginator zend, например:
class Application_Paginator_Adapter extends Zend_Paginator_Adapter_DbSelect { public function getItems($offset, $itemCountPerPage) { $this->_select->limit($itemCountPerPage, $offset); $rowset = $this->_select->getTable()->fetchAll($this->_select); $articleModels = array(); foreach($rowset as $row) { $model = new News_Model_Article(); $model->setTitle($row->article_title); ........... $articleModels[] = $model; } return $articleModels; } }
Используйте его, как показано ниже:
$adapter = new Application_Paginator_Adapter(); $paginator = new Zend_Paginator($adapter);
Используйте Dag_Table Paginator, вы можете инициировать его следующим образом:
$table = new Your_Zend_DbTable(); // Asuming this has configured the $rowClass property $paginator = Zend_Paginator::factory($table->select()); $paginator->setItemCountPerPage(10); $paginator->setCurrentPageNumber(1);
Затем вы можете закодировать объект $ paginator и прочитать свойства объекта.
Это может быть новая функция, но если вы используете Zend_Paginator_Adapter_DbTableSelect
, вы должны получить объекты ( Zend_Db_Table_Row
) уже.