我试图在我的刀片视图中循环浏览一些数据。这是我的数据库设置:
我希望在我看来有以下内容:
所以我可以循环完成这些日子,然后根据他们所在的类别对任务进行排序。我对Laravel没有经验,而且我在以最佳方式按类别排序任务时遇到困难。
在天模型中,我有:
public function tasks()
{
return $this->belongsToMany('App\Task');
}
在我的任务模型中,我有:
public function days()
{
return $this->belongsToMany('App\Day');
}
public function category()
{
return $this->belongsTo('App\Category');
}
在我的类别模型中,我有:
public function tasks()
{
return $this->hasMany('App\Task');
}
在我的控制器中,我现在只有:
public function index()
{
$categories = Category::all();
return view('app.blade.php', compact('categories'));
}
但是,我如何确保按天分类,然后按类别订购?非常感谢。
答案 0 :(得分:2)
您可以尝试以下方法:
$days = Days::with('tasks.category')->get();
$days = $days->map(function ($day) {
$day->tasks = $day->tasks->groupBy('category_id');
return $day;
});
在groupBy()方法
之后检查它的转换方式dd($days);
然后在您的视图中,您可以这样做:
@foreach ($days as $day)
{{ $day->name }}
@foreach ($days->tasks as $tasks)
{{ $tasks->first()->category->name }}
@foreach ($tasks as $task)
{{ $task->name }}
@endforeach
@endforeach
@endforeach
注意 - 我没有测试过,但您可以尝试一下。