У меня есть две таблицы (проекты, задачи).
структура таблицы проектов выглядит следующим образом:
id - title - desc - others_column
1 - title - desc - others
2 - title - desc - others
структура таблицы задач выглядит следующим образом:
id - title - desc - project_id - parent_id - others_column
1 - title - desc - 1 - null - others
2 - title - desc - 1 - 1 - others
3 - title - desc - 2 - null - others
4 - title - desc - 2 - 3 - others
Я попытался запросить, Project Controller выглядит следующим образом.
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Project;
use App\Task;
class ProjectsController extends Controller {
public function index(Request $request) {
$projects = new Project;
$projects = $projects->with('tasks');
$projects = $projects->get();
}
}
И модель проекта выглядит следующим образом:
use Illuminate\Database\Eloquent\Model;
class Project extends Model {
public function tasks() {
return $this->hasMany('App\Task');
}
}
Я получаю результат выглядит так:
{
"id":1,
"title":"title",
"desc":"desc",
"tasks":[
{
"id":1,
"title":"Title",
"desc":"Desc",
"todo_project_id":1,
"parent_id":null,
}
{
"id":2,
"title":"Title",
"desc":"Desc",
"todo_project_id":1,
"parent_id": 1,
}
] },
Но я хочу, чтобы результаты выглядели такэто:
{
"id":1,
"title":"title",
"desc":"desc",
"tasks":[
{
"id":1,
"title":"Title",
"desc":"Desc",
"todo_project_id":1,
"parent_id":null,
"subtasks": [
{
"id":2,
"title":"Title",
"desc":"Desc",
"todo_project_id":1,
"parent_id": 1,
},
{
"id":3,
"title":"Title",
"desc":"Desc",
"todo_project_id":1,
"parent_id": 1,
},
]
},
{
"id":4,
"title":"Title",
"desc":"Desc",
"todo_project_id":2,
"parent_id":null,
"subtasks": [ ]
}
] },
Теперь любой может помочь мне получить правильные результаты.
Спасибо