laravel 5.1 中的菜单和 child 菜单
Menu and child menu in laravel 5.1
所以我的数据库中有一个 table,带有 id、id_parent、标题等等。
我需要创建一个包含子列表的列表。我需要某种递归函数,但不知道如何在 laravel..
中实现
我试过了
class Goals extends Model {
protected $table = 'goals';
public function subgoals() {
return $this->hasMany(SubGoals::class, 'id_category');
}
}
class SubGoals extends Model {
protected $table = 'goals';
public function goals() {
return $this->belongsTo(Goals::class, 'id_category');
}
}
控制器:
$treeView = Goals::with(['SubGoals'])->get();
并查看:
@foreach($treeView as $category)
<li>
<a href="#"> {{ $category->title }} </a>
<ul>
@foreach($category->subgoals as $subcategory)
<li><a href="#">{{ $subcategory->title }}</a></li>
@endforeach
</ul>
</li>
@endforeach
没有得到正确的结果..
也许有人有一个片段..
您不需要创建 2 个 类,只需要一个像您的示例目标。
class Goal extends Model {
protected $table = 'goals';
public function subgoals() {
return $this->hasMany(Goal::class, 'parent_id', 'id');
}
}
然后在控制器中你需要像这样"Query all parent Goals":
$parent_goals = Goal::whereNull('parent_id')->get();
最后在视图中:
@foreach($parent_goals as $goal)
<li>
<a href="#"> {{ $goal->title }} </a>
<ul>
@foreach($goal->subgoals as $subgoal)
<li><a href="#">{{ $subgoal->title }}</a></li>
@endforeach
</ul>
</li>
@endforeach
就是这样。希望对你有帮助。
所以我的数据库中有一个 table,带有 id、id_parent、标题等等。 我需要创建一个包含子列表的列表。我需要某种递归函数,但不知道如何在 laravel..
中实现我试过了
class Goals extends Model {
protected $table = 'goals';
public function subgoals() {
return $this->hasMany(SubGoals::class, 'id_category');
}
}
class SubGoals extends Model {
protected $table = 'goals';
public function goals() {
return $this->belongsTo(Goals::class, 'id_category');
}
}
控制器:
$treeView = Goals::with(['SubGoals'])->get();
并查看:
@foreach($treeView as $category)
<li>
<a href="#"> {{ $category->title }} </a>
<ul>
@foreach($category->subgoals as $subcategory)
<li><a href="#">{{ $subcategory->title }}</a></li>
@endforeach
</ul>
</li>
@endforeach
没有得到正确的结果.. 也许有人有一个片段..
您不需要创建 2 个 类,只需要一个像您的示例目标。
class Goal extends Model {
protected $table = 'goals';
public function subgoals() {
return $this->hasMany(Goal::class, 'parent_id', 'id');
}
}
然后在控制器中你需要像这样"Query all parent Goals":
$parent_goals = Goal::whereNull('parent_id')->get();
最后在视图中:
@foreach($parent_goals as $goal)
<li>
<a href="#"> {{ $goal->title }} </a>
<ul>
@foreach($goal->subgoals as $subgoal)
<li><a href="#">{{ $subgoal->title }}</a></li>
@endforeach
</ul>
</li>
@endforeach
就是这样。希望对你有帮助。