授权中间件将请求类型从POST更改为GET


auth middleware changes request type from POST to GET

我在每个带有模型的页面上都有一个简单的评论表单。该表单对于未登录的用户是可见的。

当非登录用户提交评论时,请求被auth中间件捕获。

表单动作为comments

{!! Form::open(array('url' => 'comments', 'method' =>'post', 'role'=>'form', 'class'=>'')) !!}

我在我的routes文件中定义了一个资源路由:Route::resource('comments', 'CommentsController');

成功登录后,用户被重定向到comments,但是这里有问题:

用户被重定向到控制器的index方法。似乎中间件将请求类型从POST重置为GET

这个问题在过去和最近的Laravel 5.3中都存在。

相关的Laravel文档在这里

我的问题

这个行为是"一个功能",还是我应该报告一个错误在Laravel?

我的热修复补丁

我将表单头中的url定义更改为comments/create,并在resource上方添加了新路由。但这看起来不像是一个优雅的解决方案。

任何想法?

这不是bug,用户登录成功后,用户将被重定向回"评论"。重定向实际上是一个GET方法,你不能使用POST方法重定向。

这个链接将支持你不能在重定向中使用POST,https://www.sitepoint.com/community/t/how-to-do-redirect-in-php-with-post-and-not-get/4968/7

您可以使用session来存储之前的POST值并将其保存在

之后