ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – Laravel.旨在发布方法的重定向

2019-07-27 23:28:17  阅读:203  来源: 互联网

标签:url-redirection php laravel-5 redirect middleware


我正在使用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']);

这是我的路线,我希望这是你需要的.

解决方法:

您可以使用命名路由来解决此问题:

让我们做一个像这样的命名路线:

获得

Route::get('user/additional-fields',array(
    'uses' => 'UserController@getAdditionalFields',
    'as'   => 'user.getAdditionalFields'
));

对于帖子

Route::post('user/additional-fields',array(
    'uses' => 'UserController@postAdditionalFields',
    'as'   => 'user.postAdditionalFields'
));

因此,我们现在可以通过这样做确保Laravel使用正确的路线

return redirect() – > guest(route(‘user.getAdditionalFields’));

另请注意,由于Laravel希望提交表单,因此无法重定向POST.所以你不能这样做:

return redirect() – > guest(route(‘user.postAdditionalFields’));

除了你使用像cURL或GuzzleHttp之类的东西模拟一个帖子请求

标签:url-redirection,php,laravel-5,redirect,middleware
来源: https://codeday.me/bug/20190727/1558560.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有