Laravel POST失败 - MethodNotAllowedHttpException(405) - 即使定义了POST Route和CSRF

时间:2018-04-20 12:47:37

标签: php laravel

我有一个表格帖子设置, csrf_field()包括:

<form method="post">
{{ csrf_field() }}

...
<button type="submit" class="btn btn-xs btn-space btn-primary">Save and finish</button>
</form>

在我的路线中,我已适当地设置了所有内容:

Route::get('/assess/{room_name}/{subject_selected}/{unit_selected}/{outcome_selected}', 'AssessmentHandler@step_6_assess');
Route::post('/assess//{room_name}/{subject_selected}/{unit_selected}/{outcome_selected}', 'AssessmentHandler@step_6_save');

控制器中的功能已经定义,一切都应该正常工作。

但是,当我提交表单时,我收到此错误消息:

  

Symfony \ Component \ HttpKernel \ Exception \   MethodNotAllowedHttpException没有消息

之前我没有看过这条消息,也不知道在我的特定实例中是从哪里触发的。我读过的关于这个特定错误的所有搜索结果都谈到了从GET更改为POST或确保CSRF保护到位,但这不是我的问题。

使用Dev工具,它显示405错误(Method Not Allowed)。

知道这里可能会发生什么吗?

1 个答案:

答案 0 :(得分:-1)

尝试将{{ csrf_field() }}替换为@csrf。 帖子网址中还有2个斜杠:Route::post('/assess//{room_name}

确保您重定向到正确的页面。

也许您可以在控制器中向我们展示代码。

您的控制器真的是AssessmentHandler而不是AssesmentHandlerController吗?