如何解决Laravel 8.x redirect()->intended() 不断更改为错误的 url
我正在尝试创建一种在使用 laravel 在网站上执行合理操作时确认密码的方法。
我使用一个表单来创建操作,该操作使用一个路由到明智的操作,使用中间件来确认密码。在确认结束时,它返回 redirect()->intended()
以重定向到路由最初应该执行的操作,如果没有进行密码验证。
这里的问题是,无论如何,redirect()->intended()
从来都不是我想要首先执行的操作,它只是重定向到生成第一个表单的页面。
我使用表单来执行上述操作。
<form method="post" action="/user/{{$user->username}}/sensible_page/" enctype="multipart/form-data">
{{csrf_field()}}
<button type="submit" id="sensible_button" class="col-auto align-self-end btn btn-danger">Click to go to sensible page</a>
</form>
这是我使用的路线
Route::get('/confirm-password',function () {
return view('auth.confirm-password');
})->name('password.confirm');
Route::post('/confirm-password'function () {
if(! Hash::check($request->password,$request->user()->password)) {
return back()->withErrors([
'password' => ['The provided password does not match our records.']
]);
}
return redirect()->intended(); //<--- this redirect is the one causing problems
})->name('password.confirm');
Route::post('/user/{username}/sensible_action/',[UserController::class,'sensible_action'])->middleware(['password.confirm']);
这是输入密码的视图
<form method="POST" action="{{route('password.confirm')}}" novalidate>
{{ csrf_field() }}
<p>Please confirm your password before continuing</p>
<input type="password" id="password" name="password" placeholder="Password">
<button type="submit">Confirm</button>
</form>
这是要执行的操作
public function sensible_action(Request $request,$username)
{
$user = User::where('username','=',$username)->first();
User::findOrFail($user->id);
$user->sensible_info=false;
$user->save();
return redirect("/user/".$username);
}
感谢您走到最后并花时间帮助我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。