2011-01-07 62 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 
       ) 
      ) 
     ); 
    } 
}