我正在使用 Laravel 8 开发我的论坛项目,在这个项目中,我想制作一个 editquestion
页面,用户可以编辑他们的问题。
所以这是刀片上的一个按钮,可以将用户重定向到该编辑页面:
<form action="{{ route('edit.question', $show->slug) }}">
<button type="submit" class="text-blue-500 BJadidBold">Edit Question</button>
</form>
这是显示 editquestion
刀片的路线:
Route::get('editquestion/{question:slug}' , [QuestionController::class, 'editQuestion'])->name('edit.question');
这是返回此刀片的控制器方法 editQuestion()
:
public function editQuestion(Question $slug)
{
return view('questions.editquestion',[
'slug' => $slug
]);
}
但是现在,每当我点击 Edit Question
时,我都会收到此错误:
缺少 [Route: edit.question] [URI: editquestion/{question}] [缺少参数: question] 的必需参数
那么这里出了什么问题?我该如何解决这个问题?
感谢您的帮助。
答案 0 :(得分:0)
您已将 $slug
变量传递到视图中,因此请尝试直接访问它:
<form action="{{ route('edit.question', $slug) }}">
您还应该将路由定义更改为:
Route::get('editquestion/{slug}', [QuestionController::class, 'editQuestion'])->name('edit.question');
确保将相同的变量注入控制器。
或者,如果你想在控制器方法中使用问题更新到这个:
public function editQuestion(Question $question, $slug)
不更新路由定义。