如何在刀片文件Laravel 5.2

时间:2017-10-14 05:54:46

标签: php laravel-5

我需要在子任务刀片文件上打印我的项目名称和任务名称。我的问题是,我有项目管理应用程序,它包含项目,一个项目有很多任务,一个任务有很多子任务。这是我在任务和子任务任务模型之间的关系

Task Model
    public function subtasks(){
        return $this->hasMany(Subtask::class);
    }



Subtask model
    public function task(){
        return $this->belongsTo(Task::class);
    }

我的子任务数据输入文件是:

subtask/form.blade.php

<h4>Add Sub Task</h4>
 <form class="form-vertical" role="form" method="post" action="{{ route('subtasks.form', ['projectId'=> $projectId, 'taskId'=>$taskId])}}">
     <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
     <input type="text" name="task_name" class="form-control" id="name" value="{{ old('task_name') ?: '' }}">
     @if ($errors->has('task_name'))
         <span class="help-block">{{ $errors->first('task_name') }}</span>
     @endif
     </div>
     <div class="form-group">
         <button type="submit" class="btn btn-info">Create Task</button>
     </div>
     <input type="hidden" name="_token" value="{{ csrf_token() }}">
 </form>

这是我的子任务控制器

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();
        //
    }

我需要在subtask.blade.php上打印我的项目名称和任务名称我该怎么做? 的被修改 请看我的控制器节目

public function show($id)
    {
        $task = $subtask->task;
        $project = $task->project;
        return view('subtasks.form', ['subtask' => $subtask, 'task' => $task, 'project => $project]);
        //
    }

我应该如何在这里更换 show($ id)

已编辑的子任务存储方法

 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();
        //
    }

子任务显示方法

public function show($id)
{
    $subtask = Subtask::findOrFail($id);
    $task = $subtask->task;
    $project = $task->project;
    return view('subtasks.form', ['subtask' => $subtask, 'task' => $task, 'project => $project]);
    //
}

1 个答案:

答案 0 :(得分:0)

编辑答案

从迁移开始:

项目表

public function up()
{
    Schema::create('projects', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->text('description');
        $table->timestamps();
    });
}

任务表

public function up()
    {
        Schema::create('tasks', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('project_id')->index();
            $table->string('name');
            $table->text('description');
            $table->timestamps();
        });
    }

子任务表

public function up()
{
    Schema::create('subtasks', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('task_id')->index();
        $table->string('name');
        $table->string('status');
        $table->timestamps();
    });
}

然后是控制器:

<强> SubtaskController

确保store方法包含相关的任务ID。

public function store(Request $request,$projectId,$taskId)
    {
    $subtask = new Subtask();

    $subtask->name = 'Subtask A';
    $subtask->task_id = '1';
    $subtask->status = 'New';
    $subtask->save();
    }

对于TaskController,同样的想法,确保project_id与对象一起保存。

子任务show方法:

public function show($id)
    {
        $subtask = Subtask::findOrFail($id);
        $task = $subtask->task;
        $project = $task->project;

        return view('subtask-view', ['subtask' => $subtask, 'task' => $task, 'project' => $project]); 
}

然后在你看来:

{{ $subtask->name }} belongs to {{ $task->name }} which is a part of {{ $project->name }}