CodeIgnitor 4 MySQL 查询构建器与连接

时间:2021-03-17 19:13:02

标签: php mysql sql codeigniter codeigniter-4

给定以下数据库结构

  • 项目:id、名称
  • 文件夹:id、name、project_id
  • 文件:id、name、folder_id

我想获取所有项目及其文件夹和文件,以及文件夹和文件的数量。

我的模型定义中有以下代码:

public function getProjectsWithFiles()
    {

        $db = \Config\Database::connect();
        $builder = $db->table('projects');
        $builder->select('*');
        $builder->join('folders', 'folders.project_id = projects.id'); // get the folders
        $builder->join('files', 'files.folder_id = folders.id'); // get the files
        return $builder->get()->getResult();
    }

此代码为我提供了所有文件,但是它没有为我提供文件夹或项目。 结果是 Arrayfiles

所需的结果将是一个 projects 数组及其各自的 foldersfiles,例如:

[
 name: project1, id: 1, folders: [], files: []
 name: project2, id:2, folders: [], files: []
]

0 个答案:

没有答案
相关问题