【发布时间】:2015-05-26 15:49:00
【问题描述】:
我正在使用 laravel 5,这是我的问题。用户填写表单 X,如果他没有登录,他会被重定向以填写更多字段表单,或者他有可能登录。如果用户填写其他字段,一切正常,但如果他登录,laravel 重定向用户使用 GET 方法而不是 POST 来形成 X。
这就是我的中间件重定向的样子:
return redirect()->guest('user/additional-fields');
此重定向出现在成功登录时:
return redirect()->intended();
所以在重定向时我得到了错误 MethodNotAllowedHttpException。 URL 是正确的,它被定义为 POST 方法。我在这里想念什么?为什么 laravel 重定向旨在作为 GET 方法?我该如何解决这个问题?谢谢!
编辑:
Route::post('/user/log-in-post', ['as' => 'user-log-in-post', 'uses' => 'UserController@postUserLogIn']);
这是我的路线,我希望这是你需要的。
【问题讨论】:
-
最好在让用户访问您的页面之前检查用户是否已登录,而不是在发布数据时检查他是否已登录。实际上,您确实会检查用户是否已登录/是否有权发布您的数据,但如果他没有。您必须引发异常并重定向到相应的错误页面。
-
这背后的想法是让用户写帖子,如果他想避免注册,让他登录,如果他决定用现有帐户写当前帖子。
-
嗯...好的,我明白了。在重定向后重新访问控制器时,您可能会使用 Input 门面的 old() 方法。输入::old()
-
但是我如何重定向回查看而不是发布方法?
-
请让我看看你的用户路由,你可以使用命名路由解决这个问题
标签: php redirect laravel-5 url-redirection middleware