Php 用db数据填充编辑表单将返回未定义的变量错误-Laravel 7
我在Laravel7中工作,试图使用Php 用db数据填充编辑表单将返回未定义的变量错误-Laravel 7,php,laravel,forms,Php,Laravel,Forms,我在Laravel7中工作,试图使用value=“{{{{$task->task\u name}}”从数据库自动填充表单数据。但是它在我的edit.blade.php文件中抛出了一个未定义的变量:task。 我得到了正确的任务id,因为我可以在url中看到它。我尝试了{{old('task_name')}},结果在输入字段中返回了一个占位符,没有错误。如果我把{{old('task_name',$task->task_name)}}放进去,它也会抛出一个错误。如果有人能在这个问题上提供帮助,我将
value=“{{{{$task->task\u name}}”
从数据库自动填充表单数据。但是它在我的edit.blade.php
文件中抛出了一个未定义的变量:task
。
我得到了正确的任务id,因为我可以在url中看到它。我尝试了{{old('task_name')}}
,结果在输入字段中返回了一个占位符,没有错误。如果我把{{old('task_name',$task->task_name)}}
放进去,它也会抛出一个错误。如果有人能在这个问题上提供帮助,我将不胜感激。我正在为我的功能使用资源。以下是迄今为止的代码:
edit.blade.php(仅相关部分)
如果我缺少任何代码,或者如果您有任何问题可以帮助我解决问题,请让我知道,以便我可以更新我的问题。再次提前感谢。您需要将
$task
变量传递到视图中:
public function edit($id)
{
$task = Task::findOrFail($id);
return view('tasks.edit', ['task' => $task]);
}
此外,您还可以使用request
validation
方法提取所需的输入,之后,所有内容都将包含在$data
变量中,您可以使用一行代码轻松更新模型
我不知道您希望如何接收数据,因此我使用nullable
作为验证条目,您可以在此处查看所有验证:
这段代码将使这段代码与另一段代码相同,但我认为这段代码更简洁。Jonathan,谢谢。我将在大约6分钟内将此标记为正确答案,因为它还不允许我这样做。它成功了。非常感谢你。你真是个和蔼可亲的人。非常感谢你。干杯。谢谢,不客气。继续做好工作!我能再给你一些提示吗?我会稍微重构一下
update
方法。就可以了。谢谢。
<div class="float-right" style="display: inline;">
<a href="tasks/{{$task->id}}/edit" class="btn btn-primary mb-3 ml-2">
<i class="fa fa-edit"></i> Edit
</a>
</div>
public function edit($id)
{
return view('tasks.edit');
}
public function update(Request $request, $id)
{
$this->validate($request, [
'task_name' => 'required',
'task_description' => 'required',
]);
$task = Task::find($id);
$task->task_name = $request->input('task_name');
$task->task_description = $request->input('task_description');
$task->task_priority = $request->input('task_priority');
$task->task_assigned_by = $request->input('task_assigned_by');
$task->task_assigned_to = $request->input('task_assigned_to');
$task->task_to_be_completed_date = $request->input('task_to_be_completed_date');
$task->task_notes = $request->input('task_notes');
$task->task_status = $request->input('task_status');
$task->update();
return redirect('/tasks')->with('success', 'Task Updated');
}
public function edit($id)
{
$task = Task::findOrFail($id);
return view('tasks.edit', ['task' => $task]);
}
public function update(Request $request, $id)
{
$task = Task::findOrFail($id);
$data = $request->validate([
'task_name' => 'required',
'task_description' => 'required',
'task_priority' => 'nullable',
'task_assigned_by' => 'nullable',
'task_assigned_to' => 'nullable',
'task_to_be_completed_date' => 'nullable',
'task_notes' => 'nullable',
'task_status' => 'nullable',
]);
$task->update($data);
return redirect('/tasks')->with('success', 'Task Updated');
}