6.4 注册失败错误信息

在 6.3 我们已经完成了控制器调用验证器来达到验证的目的,可是在控制器里如果直接输出错误信息 return $error 会跳转到一个新的空白页面来单独显示,这样的用户体验非常差,这次我们将在表单上使用 flash 闪存 进行一次性的错误信息展示.

闪存数据

flash 闪存 是 ThinkPHP 中 session 一节: https://www.kancloud.cn/manual/thinkphp5_1/354117 所提供的方法,flash 闪存 的数据在下次请求之前有效,意味着这个数据只能输出一次,很符合这一节所要实现的业务场景.

public function save(Request $request)
{
$requestData = $request->post();
$result = $this->validate($requestData, 'app\user\validate\Auth');
if (true !== $result) {
return redirect('user/auth/create')->with('validate',$result);
} else {
dump($requestData);
}
}

return redirect('user/auth/create')->with('validate',$result);redirect('user/auth/create') 是跳转到对应的 控制器/方法 with('validate',$result) 则是 redirect 提供的一个快捷 flash 闪存 的方法,与 Session::flash('validate',$result); 效果一样.

详细文档请查看:

在前端中显示

非常简单的,我们只用在之前创建的注册页面 resources\views\user\auth\create.blade.php 中添加:

<div class="panel-heading mb-3">
<h4>注册</h4>
</div>
++++
@if(session('validate'))
<div class="alert alert-warning" role="alert">
{{ session('validate') }}
</div>
@endif
++++

这下就可以完美的显示出错误信息了.