ThinkPHP5.0之执行添加的数据验证
- 控制器
/**
* 执行添加
*/
public function postInsert(Request $request)
{
// 获取数据
$data = $request->except(['action', 'repassword', '__token__']);
$data['password'] = md5($data['password']);
$data['status'] = 1;
$data['token'] = $request->param('__token__');
// dump($data);
// 数据验证
// 将获取的所有参数进行验证
$result = $this->validate($request->param(), 'AdminUsers');
// 不符合规则
if (true !== $result) {
// 显示错误信息,阻止页面提交
$this->error($result);
}
// 执行添加
$res = Db::table("users")->insert($data);
// 判断
if ($res) {
$this->success('添加成功', '/adminusers/index');
} else {
$this->error('添加失败');
}
}
- 验证器类
// 模块下创建validate目录,目录下创建一个控制器的名称的类
<?php
namespace app\admin\validate;
use think\Validate;
class AdminUsers extends Validate
{
// 验证规则
protected $rule = [
'username' => 'require|unique:users|regex:[A-Za-z0-9]{4,8}|token',
'password' => 'require|regex:[A-Za-z0-9]{5,18}',
'repassword' => 'require|regex:[A-Za-z0-9]{5,18}|confirm:password',
'email' => 'require|email',
];
// 提示信息
protected $message = [
'username.require' => '用户名不能为空',
'username.unique' => '用户名已被注册',
'username.regex' => '用户名格式不正确,4-8位数字字母',
'password.require' => '密码不能为空',
'password.regex' => '密码格式不正确,5-16位数字字母',
'repassword.require' => '确认密码不能为空',
'repassword.regex' => '确认密码格式不正确,5-16位数字字母',
'repassword.confirm' => '两次密码不一致',
'email.require' => '邮箱不能为空',
'email.email' => '邮箱格式不正确',
];
}