【问题标题】:Laravel 8: Missing required parameter for [Route: students.update]Laravel 8:[路线:students.update]缺少必需的参数
【发布时间】:2021-11-06 04:30:52
【问题描述】:

所以我试图理解 laravel,因为我是新手,所以我正在创建一个简单的 crud 应用程序...... 我有点卡在编辑部分了。

我遇到了这个错误:

缺少 [Route: students.update] [URI: students/{student}] [缺少参数:student] 的必需参数

我很确定我传递了一个参数,该参数是所选行的 id。请帮助.tnx

这是我的控制器:

 public function edit(Students $students)
    {
        return view('students.edit', compact('students'));
    }

public function update(Request $request, Students $students)
    {
        $this->validate($request, [
            'fname' => 'required',
            'lname' => 'required',
            'age' => 'required',
            'course' => 'required'
        ]);
        $students->update($request->all());
        return redirect()->route('students.index')->with('success','Student updated successfully');
    }

这是编辑按钮所在的视图

@foreach($students as $student)
          <tr>
            *some codes*
            <td>
                <a href="{{ route('students.edit', $student->id) }}" class="btn btn-success" id="editBtn">Edit</a>          
            </td>
          </tr>
        @endforeach

这是编辑视图

<form method="POST" action="{{ route('students.update', $students->id) }}">
        @csrf
        @method('PUT')

        *some codes*

        <input type="submit" id="update" class="btn btn-success" value="Update"/>
</form>

【问题讨论】:

  • 试试{{ route('students.edit', ['student' =&gt; $student]) }},或者只是{{ route('students.edit', $student) }}。旁注,包括来自web.php 的相关路线将在这里有所帮助,因此我们可以看到您是如何定义路线的。另外,模型名称是单数的,应该是Student $student,而不是Students $students
  • 我试过了,但它不起作用,所以我重新启动了一切,它就起作用了。另外,这次我将模型名称设为单数。顺便说一句,谢谢。

标签: forms methods routes controller laravel-8


【解决方案1】:

我认为您正在传递 $students-&gt;id 并期待学生对象。 尝试将$students 作为对象传递。

<form method="POST" action="{{ route('students.update', $students) }}">
        @csrf
        @method('PUT')

        *some codes*

        <input type="submit" id="update" class="btn btn-success" value="Update"></button>
</form>

编辑也一样:

<a href="{{ route('students.edit', $student) }}" class="btn btn-success" id="editBtn">Edit</a>

【讨论】:

    猜你喜欢
    • 2020-06-04
    • 2021-07-20
    • 2022-01-05
    • 2021-11-06
    • 2021-09-05
    • 2021-09-04
    • 2020-07-07
    • 2022-01-21
    相关资源
    最近更新 更多