Zend framework 如何在zend框架中对两个表进行分页
书籍具有以下字段Zend framework 如何在zend框架中对两个表进行分页,zend-framework,pagination,zend-db,zend-db-table,Zend Framework,Pagination,Zend Db,Zend Db Table,书籍具有以下字段 书号 书名 图书作者 图书出版日期 类别表有 类别识别码 类别名称 放置表具有 位置标识 安置\类别\标识(FK) 位置\书本\ id(FK) 现在我们想在索引控制器中使用分页来 选择具有特定类别的书籍? 所有表都在一个数据库中 注意:我对每个表都有单独的模型,所有表都与$\u referenceMap相互关联 我使用$adapter=new Zend_Paginator_adapter_DbTableSelect($select) 问题是:如何使$select?
- 书号
- 书名
- 图书作者
- 图书出版日期
- 类别识别码
- 类别名称
- 位置标识
- 安置\类别\标识(FK)
- 位置\书本\ id(FK)
所有表都在一个数据库中
注意:我对每个表都有单独的模型,所有表都与$\u referenceMap相互关联
我使用$adapter=new Zend_Paginator_adapter_DbTableSelect($select)
问题是:如何使$select?您可以使用此分页类:
它的设置和使用非常简单,然后将其应用于一个联合查询,该查询从特定类别中选择所有书籍(这里的许多人比我解释得更好)。书籍和类别之间存在多对多关系,并且放置表是一个交集表。因此,我认为构建$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变短