如何在 Laravel 5.2 中修复 "Undefined variable: subtask"
how to fix "Undefined variable: subtask" in Laravel 5.2
需要编辑我的子任务table记录,SubtaskController
public function edit($projectId,$taskId,$subtaskId)
{
$subtask = Subtask::where('project_id', $projectId)
->where('task_id', $taskId)
->where('id', $subtaskId)
->first();
return view('subtasks.edit')->withTask($subtask)->with('projectId', $projectId)->with('id',$subtaskId);
//
blade 文件 link 编辑按钮是这个,
tasks/index.blade.php
@foreach ($task->subtasks as $subtask)
<ul>
<li>
<div>
<div class="pull-right icons-align">
<a href="/projects/{{ $project->id }}/tasks/{{ $task->id }}/subtasks/{{$subtask->id}}/edit" class="editInline"><i class="glyphicon glyphicon-pencil"></i></a>
<a href="/projects/{{ $project->id }}/tasks/{{ $task->id }}/delete" class="editInline" onclick="return confirm('Are you sure to want to delete this record?')"><i class="glyphicon glyphicon-trash"></i></a>
</div>
{{ $subtask->subtask_name }}
</div>
@endforeach
}
路线是这条
Route::get('projects/{projects}/tasks/{tasks}/subtasks/{subtasks}/edit', [
'uses' => '\App\Http\Controllers\SubtasksController@edit',
]);
并编辑。blade.php
subtasks/edit.blade.php
<div class="col-lg-6">
<form class="form-vertical" role="form" method="post" action="{{ url('projects/' .$projectId .'/tasks/' . $task->id.'/subtasks/'.$subtask->id) }}"> //this is line 9
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<input type="text" name="task_name" class="form-control" id="name" value="{!! $subtask->subtask_name ?: '' !!}">
@if ($errors->has('name'))
<span class="help-block">{{ $errors->first('name') }}</span>
@endif
</div>
<div class="form-group">
<button type="submit" class="btn btn-info">Update Subtask</button>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
{!! method_field('PUT') !!}
</form>
但是当我点击 blade 文件的编辑按钮时出现了这个错误消息,
ErrorException in 9b021095a9def87aed61575bb51efc07798e08da.php line 9: Undefined variable: subtask (View: C:\Users\dnk\Desktop\ddd\resources\views\subtasks\edit.blade.php)
如何解决这个问题?
而不是:
->withTask($subtask)
这样做:
->withSubtask($subtask)
并在 edit
视图中更改为:
$task->id
收件人:
$subtask->task->id
要使第二个修复生效,您还需要在 Subtask
模型中正确定义关系:
public function task()
{
return $this->belongsTo(Task::class);
}
需要编辑我的子任务table记录,SubtaskController
public function edit($projectId,$taskId,$subtaskId)
{
$subtask = Subtask::where('project_id', $projectId)
->where('task_id', $taskId)
->where('id', $subtaskId)
->first();
return view('subtasks.edit')->withTask($subtask)->with('projectId', $projectId)->with('id',$subtaskId);
//
blade 文件 link 编辑按钮是这个, tasks/index.blade.php
@foreach ($task->subtasks as $subtask)
<ul>
<li>
<div>
<div class="pull-right icons-align">
<a href="/projects/{{ $project->id }}/tasks/{{ $task->id }}/subtasks/{{$subtask->id}}/edit" class="editInline"><i class="glyphicon glyphicon-pencil"></i></a>
<a href="/projects/{{ $project->id }}/tasks/{{ $task->id }}/delete" class="editInline" onclick="return confirm('Are you sure to want to delete this record?')"><i class="glyphicon glyphicon-trash"></i></a>
</div>
{{ $subtask->subtask_name }}
</div>
@endforeach
}
路线是这条
Route::get('projects/{projects}/tasks/{tasks}/subtasks/{subtasks}/edit', [
'uses' => '\App\Http\Controllers\SubtasksController@edit',
]);
并编辑。blade.php subtasks/edit.blade.php
<div class="col-lg-6">
<form class="form-vertical" role="form" method="post" action="{{ url('projects/' .$projectId .'/tasks/' . $task->id.'/subtasks/'.$subtask->id) }}"> //this is line 9
<div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}">
<input type="text" name="task_name" class="form-control" id="name" value="{!! $subtask->subtask_name ?: '' !!}">
@if ($errors->has('name'))
<span class="help-block">{{ $errors->first('name') }}</span>
@endif
</div>
<div class="form-group">
<button type="submit" class="btn btn-info">Update Subtask</button>
</div>
<input type="hidden" name="_token" value="{{ csrf_token() }}">
{!! method_field('PUT') !!}
</form>
但是当我点击 blade 文件的编辑按钮时出现了这个错误消息,
ErrorException in 9b021095a9def87aed61575bb51efc07798e08da.php line 9: Undefined variable: subtask (View: C:\Users\dnk\Desktop\ddd\resources\views\subtasks\edit.blade.php)
如何解决这个问题?
而不是:
->withTask($subtask)
这样做:
->withSubtask($subtask)
并在 edit
视图中更改为:
$task->id
收件人:
$subtask->task->id
要使第二个修复生效,您还需要在 Subtask
模型中正确定义关系:
public function task()
{
return $this->belongsTo(Task::class);
}