我有两种型号 - 产品和类别 分类型号HABTM产品
当我创建一个View控制器来查看单个类别时,我的递归设置为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 -- ???
}
任何?
答案 0 :(得分:0)
在Pagination documentation中,搜索以下文字
在您要配置的模型之后命名数组的键
这包括如何处理多个和/或“其他”模型。简而言之,您需要的内容如下:
// CategoriesController::view()
$this->paginate = array(
'Product' => array(
'conditions' => array('Product.category_id' => $category_id)
),
);
$products = $this->paginate('Product');
$this->set(compact('products'));
请注意,条件现在安排在名为“产品”的键下。
答案 1 :(得分:0)
与此处提出的另一个问题相同。 解决方案:how to get books from one category excluding other category (through cross table)
将链接模型与分页相结合,您就完成了。在获取所有相关产品后,您只需按product_id而不是category_id进行过滤。 使用链接模型进行分页查找也应该有效。从来没有尝试过。试试吧;)
问候 func0der