Eva*_*kus 4 php redirect middleware url-redirection laravel-5
我正在使用laravel 5,这是我的问题。用户填写表格X,如果他未登录,则他将被重定向以填写更多字段表格,或者他可以登录。如果用户填写其他字段,一切正常,但是如果他登录,则laravel重定向用户使用GET方法而不是POST来形成X。
这是我的中间件重定向的样子:
return redirect()->guest('user/additional-fields');
Run Code Online (Sandbox Code Playgroud)
此重定向出现在成功登录时:
return redirect()->intended();
Run Code Online (Sandbox Code Playgroud)
所以在预期的重定向中,我得到错误MethodNotAllowedHttpException。URL是正确的,定义为POST方法。我在这里想念什么?laravel为什么将重定向重定向为GET方法?我该如何解决这个问题?谢谢!
编辑:
Route::post('/user/log-in-post', ['as' => 'user-log-in-post', 'uses' => 'UserController@postUserLogIn']);
Run Code Online (Sandbox Code Playgroud)
这是我的路线,希望这是您需要的。
您可以使用命名路由来解决此问题:
让我们这样命名一个路由:
为了得到
Route::get('user/additional-fields',array(
'uses' => 'UserController@getAdditionalFields',
'as' => 'user.getAdditionalFields'
));
Run Code Online (Sandbox Code Playgroud)
邮寄
Route::post('user/additional-fields',array(
'uses' => 'UserController@postAdditionalFields',
'as' => 'user.postAdditionalFields'
));
Run Code Online (Sandbox Code Playgroud)
因此,我们现在可以通过执行此操作来确保Laravel使用正确的路线
return redirect()->guest(route('user.getAdditionalFields'));
另请注意,POST由于Laravel希望提交表单,因此无法重定向。所以你不能这样做:
return redirect()->guest(route('user.postAdditionalFields'));
除了您使用cURL或GuzzleHttp之类的东西来模拟发布请求
| 归档时间: |
|
| 查看次数: |
17825 次 |
| 最近记录: |