相关疑难解决方法(0)

CakePHP 3包含​​选择字段

我有以下数据库表:项目,用户,组,itemImages.(项目,组)和(用户,组)之间存在多对多关系,(项目,项目图像)之间存在一对多关系.所有相应的外键都已在CakePHP中设置为关联.

如何使用contains()构造一个查询,该查询选择所有项目及其主图像,这些项目位于已被指定为具有特定ID的用户的主要组的组中?

为了更清楚,这是一个简单的SQL查询的样子:

SELECT items.id AS itemId, items.name, itemImages.url AS itemUrl
FROM items
INNER JOIN groups_items ON groups_items.item_id = items.id
INNER JOIN groups ON groups_images.group_id = groups.id
INNER JOIN groups_users ON groups_users.group_id = groups.id
INNER JOIN users ON groups_users.user_id = users.id
INNER JOIN itemImages ON itemImages.item_id = items.id
WHERE groups_users.isMainGroup = 1
    AND users.id = :userId
    AND itemImages.isMainImage = 1
Run Code Online (Sandbox Code Playgroud)

CakePHP代码我现在有:

$items = $this->Items->find()
            ->hydrate(false)
            ->contain([
                'Groups.Users' => function($q) use ($userId){
                    return $q->where(['isMainGroup' => 1, 'Users.id' => $userId]);
                },
                'ItemImages' …
Run Code Online (Sandbox Code Playgroud)

php mysql orm cakephp cakephp-3.0

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

cakephp ×1

cakephp-3.0 ×1

mysql ×1

orm ×1

php ×1