我有一个模型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": []
}
]
}
]
}
]
}
]
我不明白如何获取内部子对象。
$data = CourseModule::with('children')->where('parent_id', 0)
。 - Shahbaz Ahmed@foreach ($accountHeads as $accountHead) @foreach ($accountHead->children as $children) <option value="{{ $children->id }}">{{ $children->name }}</option> @endforeach @endforeach
,但它只显示那些parent_id
=1
的内容。 - Rashed Hasan