我需要在子任务刀片文件上打印我的项目名称和任务名称。我的问题是,我有项目管理应用程序,它包含项目,一个项目有很多任务,一个任务有很多子任务。这是我在任务和子任务任务模型之间的关系
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]);
//
}
答案 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 }}