使用 Laravel 构建 ORM 的 JSON 和关系

Posted

技术标签:

【中文标题】使用 Laravel 构建 ORM 的 JSON 和关系【英文标题】:Building JSON of ORM and Relationships with Laravel 【发布时间】:2014-10-30 09:54:35 【问题描述】:

实际上,我这样做是为了在控制器中构建许多 ORM 对象的 json :

Response::json(Project::all());

结果:

[
    id: 1, name: 'test1',
    id: 2, name: 'test2',
    id: 3, name: 'test3'
]

现在我想要:

[
    
        id: 1, 
        name: 'test1',
        levels: [
            
                id: 1,
                name: 'level1'
            ,
            
                id: 2,
                name: 'level2'
            
        ]
    ,
    id: 2, name: 'test2', levels: [],
    id: 3, name: 'test3', levels: []
]

我的项目模型是这样的:

class Project extends Eloquent 

    protected $table = 'projects';

    public function levels()
    
        return $this->belongsToMany('Level', 'project_has_levels');
    


你是怎么做到的?

【问题讨论】:

【参考方案1】:

使用eager loading。

Response::json(Project::with('levels')->get());

【讨论】:

以上是关于使用 Laravel 构建 ORM 的 JSON 和关系的主要内容,如果未能解决你的问题,请参考以下文章

SQL 到 JSON,ORM 用于 PHP 7 和 Laravel

在 Laravel 中使用 Eloquent ORM 使用 LIKE 执行数据库搜索

laravel ORM序列化

PHP 独立使用 laravel ORM 数据库组件,PHP ORM数据库模型组件

PHP 独立使用 laravel ORM 数据库组件,PHP ORM数据库模型组件

Eloquent ORM / Laravel - 使用自定义数据透视表结构