Laravel 8:[路线:students.update]缺少必需的参数
Posted
技术标签:
【中文标题】Laravel 8:[路线:students.update]缺少必需的参数【英文标题】:Laravel 8: Missing required parameter for [Route: 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' => $student])
,或者只是 route('students.edit', $student)
。旁注,包括来自web.php
的相关路线将在这里有所帮助,因此我们可以看到您是如何定义路线的。另外,模型名称是单数的,应该是Student $student
,而不是Students $students
我试过了,但它不起作用,所以我重新启动了一切,它就起作用了。另外,这次我将模型名称设为单数。顺便说一句,谢谢。
【参考方案1】:
我认为您正在传递 $students->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>
【讨论】:
以上是关于Laravel 8:[路线:students.update]缺少必需的参数的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8:[路线:students.update]缺少必需的参数