2011-01-23 42 views
4

書具有以下字段如何分頁Zend框架中的兩個表

  • book_id
  • BOOK_NAME
  • book_auther
  • book_pub_date

類別表有

  • CATEGORY_ID
  • CATEGORY_NAME

載置臺具有

  • PLACEMENT_ID
  • placement_category_id(FK)
  • placement_book_id(FK)

現在,我們要使用分頁索引控制器 選擇書籍特定類別?
所有表都在一個數據庫


注:我已經分居模型爲每個表和所有表都與彼此$ _referenceMap
我用$適配器=新Zend_Paginator_Adapter_DbTableSelect($選擇);
的問題是:如何讓$ select?

回答

3

您在書籍和類別之間有多對多的關係,而您的展示位置表是交叉表。因此,我認爲你的$選擇一種方式可以是使用內部聯接如下構成:

$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()); 

偏離航向表和模型的名稱必須與您的真實姓名相符。 另一種方法是在數據庫中創建一個視圖。然後,您將爲該視圖創建一個模型。這將使$選擇更短。

+0

感謝它解決我的情況 – 3ehrang 2011-01-24 06:43:04