Php 用db数据填充编辑表单将返回未定义的变量错误-Laravel 7

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)}}放进去,它也会抛出一个错误。如果有人能在这个问题上提供帮助,我将

我在Laravel7中工作,试图使用
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');
}