我在每个带有模型的页面上都有一个简单的评论表单。该表单对于未登录的用户是可见的。
当非登录用户提交评论时,请求被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值并将其保存在