Создание JSON ORM и отношений с Laravel

На самом деле, я делаю это, чтобы построить JSON из многих объектов ORM в контроллере:

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 ответ

Решение

Используйте нетерпеливую загрузку.

Response::json(Project::with('levels')->get());
Другие вопросы по тегам