我正在Laravel 5.8中创建待办事项列表,我要执行任务的表中的一个字段是状态,该值具有布尔值。我想当状态等于 0(取消选中)时将成为待办事项,而如果等于1 则将完成(选中)。 下图是我对任务的CRUD,也是所选的第三个任务,因为我从MySQL输入了该值(状态= 1)。但是我想更改此值,以便在我的报表中对其进行编辑,但是我无法从Form中进行更改。
这是我要更新任务的时间 Updating task
如我之前所说,如果我检查最后一个“参数”,则不会保存它。
我的edit.blade.php
中有复选框的下一个代码
<div class="row">
<div class="form-check izquierda" >
<label class="form-check-label">
<input type="checkbox" class="form-check-input" name="status" value="{{$task->status}} "{{$task->status==1 ? 'checked' : ''}}>
<span class="form-check-sign" >
<span class="check"></span>
</span>
<label for="">Done</label>
</label>
</div>
</div>
我在TaskController.php中有以下内容
public function edit($id)
{
$task = Task::find($id);
return view('user.tasks.edit',compact('task'));
}
public function update(Request $request,$id)
{
$this->validate($request,[
'name' => 'required',
'notes' => 'required',
'schedule' => 'required',
'status' => '',
]);
$task = Task::find($id);
$task->name = $request->name;
$task->user_id = Auth::user()->id;
$task->notes = $request->notes;
$task->schedule = $request->schedule;
$task->status = $request->status; //false <- thats equals TODO (no done yet)
// $task->user_id = User::find($id);
$task->save();
return redirect()->route('user.tasks.index')->with('successMsg','Taks sucessfully edited.');
}
那我该怎么办?我对此进行了研究,但直到现在我还是无法解决。如果您能帮助我解决这个问题,我将不胜感激。预先感谢
答案 0 :(得分:0)
更改此行:
<div class="row">
<div class="form-check izquierda" >
<label class="form-check-label">
<input type="checkbox" class="form-check-input" name="status" {{ $task->status ? 'checked=checked' : '' }}>
<span class="form-check-sign" >
<span class="check"></span>
</span>
<label for="">Done</label>
</label>
</div>
</div>
在您的控制器上
public function update(Request $request,$id)
{
$this->validate($request,[
'name' => 'required',
'notes' => 'required',
'schedule' => 'required',
]);
if (isset($request->status)) {
$status = true;
} else {
$status = false;
}
$task = Task::find($id);
$task->name = $request->name;
$task->user_id = Auth::user()->id;
$task->notes = $request->notes;
$task->schedule = $request->schedule;
$task->status = $status;
$task->save();
return redirect()->route('user.tasks.index')->with('successMsg','Taks sucessfully edited.');
}