图书包含以下字段
类别表
展示位置表
现在我们想在索引控制器中使用分页 选择具有特定类别的书籍?
所有表都在一个数据库中
注意:我为每个表分离了模型,并且所有表都与$ _referenceMap相互关联
我使用$ adapter = new Zend_Paginator_Adapter_DbTableSelect($ select);
问题是:如何进行$ select?
答案 0 :(得分:3)
书籍和类别之间存在多对多关系,而您的展示位置表是一个交叉表。因此,我认为可以构造$ select的一种方法是使用内连接,如下所示:
$placementModel = new Your_Model_Table_Placement();
$select = $placementModel->select(Zend_Db_Table::SELECT_WITH_FROM_PART)->setIntegrityCheck(false);
$select->joinInner('BOOKS', 'BOOKS.book_id = PLACEMENT.placement_book_id');
$select->where('PLACEMENT.placement_category_id = ?', $categoryID);
$adapter = new Zend_Paginator_Adapter_DbTableSelect($select);
// check the result if they are what you expect
var_dump($adapter->getItems(0, 5)->toArray());
当然,表格和模型的名称必须与您的真实姓名一致。 另一种方法是在数据库中创建一个视图。然后,您将为视图创建一个模型。这会使$ select缩短。
答案 1 :(得分:0)
您可以使用此分页类:
http://www.catchmyfame.com/2007/07/28/finally-the-simple-pagination-class/
设置和使用非常简单,然后将其应用于JOINed查询,该查询选择特定类别中的所有书籍(这里的许多书籍比我更好解释)。