php - 在cakephp 3中查询获取数据

标签 php mysql cakephp

我在查询 cakephp3.x 时遇到问题。我想要返回数据,例如project_id返回project_id内的列表名称, 但project_id是唯一的。不重复的project_id。 抱歉我的英语。请帮忙。

$result = $query->find('all', [
                        'fields' => [
                            'project_id' => 't_project_member.project_id',
                            'project_name' => 't_project.name',
                            'member_name' => 'concat(t_member.first_name," ",t_member.last_name)'
                        ],
                        'join' => [
                            ['table' => 't_project', 
                            'type' => 'LEFT',
                            'conditions' => 't_project.id = t_project_member.project_id'],

                            ['table' => 't_member', 
                            'type' => 'LEFT',
                            'conditions' => 't_member.id = t_project_member.member_id'],

                        ],
                        'conditions' => ['t_project.id' => $project_id]
                ]);

结果:

 {
 "result": [
    {
        "project_id": 4,
        "project_name": "Ueno Rebrand : Business cards #1",
        "member_name": "User_3 c"
    },
    {
        "project_id": 4,
        "project_name": "Ueno Rebrand : Business cards #1",
        "member_name": "User_4 d"
    },
    {
        "project_id": 4,
        "project_name": "Ueno Rebrand : Business cards #1",
        "member_name": "User_5 e"
    },
  ]
}

我想要返回如下数据。

{
 "result": [
    {
        "project_id": 4,
        "project_name": "Ueno Rebrand : Business cards #1",
        "member_name": {
                        "User_3 c",
                        "User_4 d",
                        "User_5 e
                       }
    },
  ]
}

非常感谢。

最佳答案

$result = $query->find('all', [
                        'fields' => [
                            'project_id' => 't_project_member.project_id',
                            'project_name' => 't_project.name',
                            'member_name' => 'concat(t_member.first_name," ",t_member.last_name)'
                        ],
                        'join' => [
                            ['table' => 't_project', 
                            'type' => 'LEFT',
                            'conditions' => 't_project.id = t_project_member.project_id'],

                            ['table' => 't_member', 
                            'type' => 'LEFT',
                            'conditions' => 't_member.id = t_project_member.member_id'],

                        ],
                        'group' => '`t_project_member`.`project_id`',
                        'conditions' => ['t_project.id' => $project_id]
                ]);

关于php - 在cakephp 3中查询获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39607017/

相关文章:

php - 如何使用相同的 CakePhp 设置开发网站和 API

mysql - CakePHP/MySQL 条件 AND/OR 结果输出 - 逻辑

php - 用于 PHP 的 YARDoc(文档生成器)

php - 从 HTML 表中的存储过程 MySql PHP 获取结果

php - 用 LESS 反转所有颜色

php - Laravel Echo 在 Laravel 8-vujs "^2.5.17"版本中未接收 Pusher 事件

mysql - sql:按大写过滤字符串结果

php - PHP 中的完美枚举

mysql - SQL - 获取多个最接近的值

mysql - 连接 MYSQL 时强制 .NET 使用特定 IP