我有一个Laravel应用程序,需要密码重置功能。在将电子邮件发送给用户或单击提交按钮后,如何刷新会话消息?
我似乎无法向返回重置密码页面视图的函数添加flash方法,因为该文件位于vendor文件夹中。
答案 0 :(得分:0)
来自the docs:
有时您可能希望仅在下一个请求中将项目存储在会话中。您可以使用
flash
方法执行此操作。使用此方法存储在会话中的数据仅在后续HTTP请求期间可用,然后将被删除。 Flash数据主要用于短期状态消息:
$request->session()->flash('status', 'Task was successful!');
答案 1 :(得分:0)
在提交密码重置表单后跟踪了将触发的功能一小时后,我发现:
然后在第37行
return $response == Password::RESET_LINK_SENT
? $this->sendResetLinkResponse($response)
: $this->sendResetLinkFailedResponse($request, $response);
sendResetLinkResponse函数负责在电子邮件发送成功后会发生什么。
protected function sendResetLinkResponse($response)
{
return back()->with('status', trans($response));
}
默认情况下,laravel auth:make不会在前端或重置密码页面中显示“status”变量。
我必须将这些代码行添加到重置密码模板。
@if(session()->has('status'))
<div class="alert-container">
<div class="alert alert-success">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
{{ Session::get('status') }}
</div>
</div>
@endif