如何在laravel 5.2中使用其任务列表打印子任务

时间:2017-10-23 05:00:35

标签: php mysql laravel-5

我在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 

如何打印与每项任务相关的子任务?

1 个答案:

答案 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