经过一番查找,终于问题解决了!今天浅浅的学习一下。最近太忙,不能太晚睡。
6.5.1-2 登录业务的处理
在Auth.php
里面的详细改为(加了token
验证):
public function save(Request $request)
{
try {
validate([
'email|邮箱账号' => 'require|email|max:255|token',
'password|密码' => 'require|min:6'
])->batch()->check($request->post());
$user = UserModel::where('email',$request->post('email'))->find();
if ($user && $user->password == sha1($request->post('password').getSalt())){
session('user',$user);
return redirect((string) url('User/read',['id'=>$user->id]))->with('success','欢迎回来');
}else{
//记录旧表单输入记录
session('old',$request->post());
return redirect((string) url('login.create'))->with('warning','您的邮箱账号或者密码输入错误!');
}
} catch (ValidateException $e) {
//记录旧表单输入记录
session('old',$request->post());
if(!empty($errors = $e->getError())){
session('errors',$errors);
}
return redirect((string)url('login.create'));
}
}
read.html
改为:
{extend name="layouts/default" /}
{block name="title"}用户个人中心{/block}
{block name="content"}
<h1>用户个人中心</h1>
<div class="row">
<div class="offset-md-2 col-md-8 d-flex flex-column justify-content-center align-items-center">
<img src="/images/faces/avatar<?php echo $member-">id%7; ?>.png" alt="{$member->name}" width="200" class="img-thumbnail" />
<h3 class="p-4" style="color:deeppink;">{$member->name}</h3>
</div>
</div>
{/block}
字体颜色改为深粉;不再显示邮箱。
6.7 优化表单旧输入信息显示,用闪存。
首先,User.php
中:
Session::flash('old',$request->post());
注意引入:use think\facade\Session;
另外,在Auth.php
中同样部署,两处。