缺少 [Route: edit.question] [URI: editquestion/{question}] [缺少参数: question] 的必需参数

时间:2021-03-10 15:59:30

标签: php laravel laravel-8

我正在使用 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] 的必需参数

那么这里出了什么问题?我该如何解决这个问题?

感谢您的帮助。

1 个答案:

答案 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)

不更新路由定义。