2011-01-07 63 views
3

我搜索了高和低,並嘗試了多種不同的解決方案,我似乎無法得到它的工作。 基本上我有產品和類別。 類別擁有並且屬於許多產品,並且產品HABTM類別。它們顯然與連接表products_categories具有id,product_id,category_id字段相關。cakephp 1.3分頁habtm相關數據

在烘焙過一個簡單的完整烘焙模型視圖和控制器後 - 添加了一些類別和產品並設置了它們的關係後,我可以轉到特定的類別視圖頁面,預烘焙視圖將顯示與此相關的產品類別。

但是,有相當多的產品(並且會更多),我正在努力研究如何分頁所有這些相關的數據..因爲僅僅列出所有產品的類別是不可行的(可能有100個或更多) 任何人都可以幫忙嗎?看來在這個以及各種不同的解決方案中還有很多未解決的主題,我都無法工作!請幫忙!

+0

與您的問題無關,可以肯定,但CakePHP約定表明您的`products_categories`表應該被命名爲`categories_products` – Stephen 2011-01-07 15:34:11

+0

我不明白?它被命名爲products_categories,似乎工作正常..有什麼區別可以用另一種方式命名錶? – 2011-01-07 15:41:45

回答

3

CakePHP控制器有built in pagination。文件是徹底的,所以我建議先閱讀。之後,我很樂意回答您對這個問題的任何問題。

不知不覺參與進來,這裏的特定代碼是如何進行分頁模型數據的一個簡單的例子:

class CategoryController extends AppController { 
    var $paginate = array(
     'Product' => array(
      'joins' => array(
       array(
        'table' => 'categories_products', // or products_categories 
        'alias' => 'CatFilter', 
        'type' => 'INNER', 
        'conditions' => array(
         'CatFilter.product_id = Product.id' 
        ) 
       ) 
      ), 
      'limit' => 10 
     ) 
    ); 

    function view ($category_id) { 
     $this->set(
      'products', $this->paginate(
       $this->Category->Product, array(
        'CatFilter.category_id' => $category_id 
       ) 
      ) 
     ); 
    } 
}