gpt4 book ai didi

php - 使用 HABTM 模型的 CakePHP 分页

转载 作者:可可西里 更新时间:2023-10-31 23:56:38 24 4
gpt4 key购买 nike

我在使用 HABTM 关系创建分页时遇到了一些问题。首先,表和关系:

requests (id, to_location_id, from_location_id)
locations (id, name)
items_locations (id, item_id, location_id)
items (id, name)

因此,一个请求有一个请求来自来自的位置和一个请求将的位置。对于这个问题,我只关心“到”的位置。

Request --belongsTo--> Location* --hasAndBelongsToMany--> Item

(* as "ToLocation")

在我的 RequestController 中,我想对请求的 ToLocation 中的所有项目进行分页。

// RequestsController
var $paginate = array(
'Item' => array(
'limit' => 5,
'contain' => array(
"Location"
)
)
);

// RequestController::add()
$locationId = 21;
$items = $this->paginate('Item', array(
"Location.id" => $locationId
));

这是失败的,因为它正在生成这个 SQL:

SELECT COUNT(*) AS count FROM items Item   WHERE Location.id = 21

我不知道如何让它真正使用 $paginate 的“contain”参数...

有什么想法吗?

最佳答案

经过3天的寻找,我找到了路

var $paginate = array('Post'=>array('group'=>'Post.id'));

建议加群,因为有时候会出现不同分类的重复帖子

$this->Post->bindModel(array('hasOne'=>array('CategoriesPost')), false);
$out = $this->paginate('Post', array('CategoriesPost.category_id'=>array(1,4,7,6)));

添加false以对所有查询使用绑定(bind)模型,而不仅仅是以下

关于php - 使用 HABTM 模型的 CakePHP 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1463296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com