gpt4 book ai didi

zend-framework - 如何在zend框架中对两个表进行分页

转载 作者:行者123 更新时间:2023-12-01 02:51:31 25 4
gpt4 key购买 nike

图书有以下字段

  • book_id
  • 书名
  • book_auther
  • book_pub_date

  • 类别表有
  • category_id
  • 类别名称

  • 放置表有
  • Placement_id
  • Placement_category_id(FK)
  • Placement_book_id(FK)

  • Now we want to use pagination in index controller to select books with specific category ?
    all tables are in one database



    注意:我为每个表分离了模型,所有表都与 $_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());

    当然,表和模型的名称必须与您的真实姓名相符。
    另一种方法是在您的数据库中创建一个 View 。然后,您将为 View 创建一个模型。这将使 $select 更短。

    关于zend-framework - 如何在zend框架中对两个表进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4773299/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com