0

我有两个模型 - 产品和类别 类别模型 HABTM 产品

当我创建视图控制器来查看单个类别时,我的递归设置为 1,因此我可以加载该类别中的产品。这很简单,工作正常。

但是,我怎样才能只对类别中的产品进行分页和/或排序。我尝试了三四种不同的方法,但没有一种方法能满足我的期望——我可以将分页产品传递给视图以创建排序/分页产品的网格。

这是控制器,所有标准的东西:

//CATEGORY CONTROLLER
public function view($id = null) {


    $category = $this->Category->find('first', array(
        'recursive' => 1,
        'conditions' => array('Category.id' => $id)
    ));

    if (empty($category)) {
        $this->redirect(array('action' => 'index'), 301);
        $this->Session->setFlash('The category could not be found.');
    }
    $this->set(compact('category'));

    // paginate products and make them available to view -- ???



}

任何人?

4

2 回答 2

0

分页文档中,搜索以下文本

以您要配置的模型命名数组的键

这包括如何处理多个和/或“其他”模型。简而言之,你想要的东西看起来像:

// CategoriesController::view()
$this->paginate = array(
    'Product' => array(
        'conditions' => array('Product.category_id' => $category_id)
    ),
);
$products = $this->paginate('Product');
$this->set(compact('products'));

请注意,条件现在排列在名为“产品”的键下。

于 2012-11-15T03:26:44.960 回答
0

与此处提出的另一个问题相同的方法。解决方案:如何从一个类别中获取书籍,不包括其他类别(通过交叉表)

将链接模型与分页结合起来,您就完成了。获取所有相关产品后,您只需按 product_id 而不是 category_id 进行过滤。使用链接模型进行分页查找也应该有效。虽然从未尝试过。只是测试它;)

问候 func0der

于 2012-11-15T22:02:10.493 回答