gpt4 book ai didi

php - 如何从 cakePHP 可包含行为查找中构建单个结果数组?

转载 作者:行者123 更新时间:2023-11-29 23:31:41 24 4
gpt4 key购买 nike

模型:用户、产品,两者都是ActAs Containable

用户拥有许多产品并且产品属于用户

User->find('all')后的结果:

array(
(int) 0 => array(
'User' => array(
'id' => '1',
'name' => 'Paul'
),
'Product' => array(
(int) 0 => array(
'id' => '7',
'user_id' => '1',
'price' => '100'
),
(int) 1 => array(
'id' => '9',
'user_id' => '1',
'price' => '10'
)
),
(int) 1 => array(
'User' => array(
'id' => '2'
'name' => 'Susan'
),
'Product' => array(
(int) 0 => array(
'id' => '8',
'user_id' => '2',
'price' => '22'
),
(int) 1 => array(
'id' => '10',
'user_id' => '2',
'price' => '15'
)
)
);

我只想显示产品,按价格ASC排序(与用户订单无关),但我需要一些用户信息表达我的观点。

例如。 View :

“ID = 9 的产品属于 Paul,价格为 10”
“ID = 10 的产品属于 Susan,价格为 15”
“ID = 8 的产品属于 Susan,价格为 22”
“ID = 7 的产品属于 Paul,售价 100

最佳答案

解决方案将 contain 设置为 false 并创建自定义联接:

return $this->Product->find('all', array(
'contain' => false,
'joins' => array (
array (
'table' => 'users',
'alias' => 'User',
'type' => 'INNER',
'conditions' => array (
'User.id = Product.user_id'
)
)
),
'fields' => array('User.*', 'Product.*'),
'order' => 'Product.year ASC'
));

但是,我想知道是否有更好的方法!

model Product 我尝试使用 contain => array('User') 但发生错误“用户模型是与产品模型无关”,我不明白,因为我很好地定义了 $hasMany 和 $BelongsTo 。

关于php - 如何从 cakePHP 可包含行为查找中构建单个结果数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26526489/

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