我有一些模型需要按特定顺序列出。我有很多Task
都属于Project
。
在我的TaskController@index
中,我要列出按Task
和Project.id
分组的所有Project.updated_at
。示例:
Project 1
- Task 1
- Task 2
- Task 3
Project 2
- Task 1
- Task 2
- Task 3
如何在TaskController
中以最简单的方式解决此问题?
解决问题的关键是使用查询功能扩展关系:$this->hasMany('Task')->orderBy('updated_at');
示例:
您的Project.php
型号:
<?php
class Project
{
public function tasks()
{
return $this->hasMany('Task')->orderBy('updated_at');
}
}
您的TaskController.php
控制器:
<?php
class TaskController
{
public function index()
{
$projects = Project::with('tasks')->get();
// Then use $projects in the blade template
}
}
您的projects.blade.php
刀片文件:
@foreach($projects as $project)
<p>{{$project->name}}</p>
<ul>
@foreach($project->tasks as $task)
<li>{{$task->name}}</li>
@endforeach
</ul>
@endforeach