私はモデルCourseModule
を持っていて、それぞれのモデルは同じモデルに関連しています。同じモデルの親子関係親密関係
データベース構造:モデルで
関係:
public function parent()
{
return $this->belongsTo('App\CourseModule','parent_id')->where('parent_id',0);
}
public function children()
{
return $this->hasMany('App\CourseModule','parent_id');
}
私は次のことを試してみましたが、それは関係の唯一のレベルを返します。
が試み:
CourseModule::with('children')->get();
私は次のようなJSON出力を作成しようとしている、
予想される出力:私はインナーを取得する方法を理解していない
[
{
"id": "1",
"parent_id": "0",
"course_id": "2",
"name": "Parent",
"description": "first parent",
"order_id": "1",
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"children": [
{
"id": "2",
"parent_id": "1",
"course_id": "2",
"name": "Child 1",
"description": "child of parent",
"order_id": "2",
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"children": [
{
"id": "3",
"parent_id": "2",
"course_id": "2",
"name": "Child2",
"description": "child of child1",
"order_id": "2",
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"children": [
{
"id": "4",
"parent_id": "3",
"course_id": "2",
"name": "Child 3",
"description": "child of child 2",
"order_id": "2",
"created_at": "-0001-11-30 00:00:00",
"updated_at": "-0001-11-30 00:00:00",
"children": []
}
]
}
]
}
]
}
]
子オブジェクト
こんにちは、 'CourseModule :: whereId($のID) - >最初の() - > getDescendantsAndSelf() - > toHierarchy()'を返すだけの単一ノード、私は、私は、モデルを変更する必要がありますトップに表示されているように1つのテーブルで作業しています –
ありがとう@lagbox、それは働いた:) –