我正面临着蛋糕php分页的问题。在我的项目中,我有类别假设'木',在这里我有子类别'木桌'和进一步'木桌'有很多产品。在子类别我正在做分页。我每页显示10个项目。现在的问题是,当我点击任何分页链接时,它缺少子类别编号。例如:网址应如下所示: http://amazingtech.in/lariya/products/index/4/page:2 但是当我点击分页链接时,网址会显示为http://amazingtech.in/lariya/products/index/page:2。缺少子类别编号4 ,这会导致找不到页面错误。当我手动输入URL像这样。它有效。
I don't know how to modify pagination URL. Thanks in advance.
答案 0 :(得分:0)
分页 - 即选择或排序结果 - 与按标准搜索它们相同,即使Cake支持将它们作为数组或命名参数传递。也就是说,find()的条件不会以与分页参数相同的方式保留。
因此,您需要将条件作为命名参数或查询参数包含在内:例如:假设您的类别属于'类别' (可能是category_id,根据需要替换)
http://amazingtech.in/lariya/products/index/category:1234/page:2
或者可能:
http://amazingtech.in/lariya/products/index/category:Wooden/page:2 //more SEO friendly
甚至:
http://amazingtech.in/lariya/products/index/4/page:2
http://amazingtech.in/lariya/products/index/Wooden/page:2 //more SEO friendly
要做到最后这种方式,您需要设置控制器以查找第一个URL参数并将其指定为find()操作的条件:
public function index($category = null) {
$conditions = array('Products.category_id' => $category);
...etc
}
更多:CakePHP Cookbook Parameters
这样,当您分页时 - 只要您通过同一个控制器 - 就可以保留该类别。