我有一张包含许多具有类似数据的项目的表格,例如:
项目详情
id name value item_id
1 Toy 10300 1
2 Toy2 10103 1
3 Title One 1
4 Toy 300 2
5 Price 103 2
6 Exp 2020 2
我想使用使用 CakePHP 2.x 的 find 方法读取所有数据并将所有项目分组到按 item_id 值排序的数组中。这是一个数组,每个元素都包含一个由具有相同 item_id 的所有值组成的数组。所以数组看起来像:
Array
(
[0] => Array
(
[0] => Array
(
[ItemDetail] => Array
(
[id] => 1
[name] => Toy
[value] => 10300
[item_id] => 1
)
)
[1] => Array
(
[ItemDetail] => Array
(
[id] => 2
[name] => Toy1
[value] => 103003
[item_id] => 1
)
)
[2] => Array
(
[ItemDetail] => Array
(
[id] => 3
[name] => Title
[value] => One
[item_id] => 1
)
)
)
[1] => Array
(
[0] => Array
(
[ItemDetail] => Array
(
[id] => 4
[name] => Toy
[value] => 300
[item_id] => 2
)
)
[1] => Array
(
[ItemDetail] => Array
(
[id] => 5
[name] => Price
[value] => 300
[item_id] => 2
)
)
[2] => Array
(
[ItemDetail] => Array
(
[id] => 6
[name] => Exp
[value] => 2020
[item_id] => 2
)
)
)
)
我已经尝试了一些关于分组的想法,但它似乎消除了除了在表中找到的第一个字段值之外的所有字段值。我真的不想聚合数据,而是将具有相似 item_id 的所有内容组合在自己的数组中。
有人可以指出我正确的方向吗?我想用一个 find 语句来做到这一点,这样我就可以使用分页。我已经设法通过条件=> id =(预期的 item_id 列表)的重复查找来做到这一点,并根据每次调用的结果构建数组。但似乎应该有更好的方法。