我在laravel 5.2中有项目管理工具,这个应用程序有项目创建,一个项目有任务,每个任务都有子任务。目前我正在展示项目及其任务。现在我需要显示与每个项目和任务相关的子任务。项目 - >任务 - >子任务 这是我的任务取代方法
任务/ index.blade.php
@foreach ($project->tasks as $task)
{{ $task->task_name }}
@endforeach
这是在projects / show.blade.php
中取代<h5><b>Tasks List</b></h5>
@if($project)
@include('tasks.index')
@endif
现在我需要在project / show.blade.php中显示任务的子任务
这是我的子任务存储方法
public function store(Request $request,$projectId,$taskId)
{
$subtask = new Subtask;
$subtask->subtask_name = $request->input('task_name');
$subtask->task_id = $taskId;
$subtask->project_id = $projectId;
$subtask->save();
return redirect()->back()->with('info', 'Task created successfully');
}
这是子任务表
id subtask_name task_id project_id
1 abc 1 1
2 hfy 2 1
3 jhu 2 2
5 lop 1 3
如何打印与每项任务相关的子任务?
答案 0 :(得分:1)
您的问题中没有显示您要输出subtask
的内容。
但是,在使用视图中的数据之前,您基本上希望在控制器中急切加载关系,以避免为每个任务和子任务执行单独的查询。
// ProjectController
// You may have other conditions, etc on your query. But you want to use `with('tasks.subtasks')`
$project = Project::with('tasks.subtasks')->find(1);
// project/show.blade.php
@foreach ($project->tasks as $task)
{{ $task->task_name }}
@foreach ($task->subtasks as $subtask)
{{ $subtask->subtask_name }}
@endforeach
@endforeach