>[success] 用户新增的场景,一般需要校验的步骤有: 1. 用户名是否为空 2. 用户名是否长度符合要求 3. 用户名是否包括特殊字符 4. 用户名是否重复 5. 密码是否为空 6. 密码是否长度符合要求 7. 密码是否是弱密码 8. 确认密码是否为空 9. 密码跟确认密码是否一致 10. 手机号码是否为空 11. 手机号码是否合法 >[success] 在App/common/validate目录下创建用户校验类Manage.php,完整代码如下: ``` <?php // +---------------------------------------------------------------------- // | najing [ 通用后台管理系统 ] // +---------------------------------------------------------------------- // | Copyright (c) 2020 http://www.najingquan.com All rights reserved. // +---------------------------------------------------------------------- // | Author: 救火队队长 // +---------------------------------------------------------------------- namespace app\common\validate; use think\Validate; class Manage extends Validate { // 用户校验规则 protected $rule = [ 'username' => 'require|length:3,20|alphaDash|unique:manage,is_del^username', 'password' => 'require|length:6,16|checkPwd', 'rePassword'=>'require|confirm:password', 'mobile' => 'require|regex:mobile', ]; // 输出错误信息 protected $message = [ 'username.require' => '请输入用户名', 'username.length' => '用户名长度为3~20位', 'username.alphaDash' => '用户名只能是字母、数字或下划线组成', 'username.unique' => '用户名重复', 'password.require' => '请输入密码', 'password.length' => '密码长度为6~16位', 'password.checkPwd' => '密码必须由大写字母、小写字母、数字组成', 'rePassword.require' => '请输入确认密码', 'rePassword.confirm' => '密码跟确认密码不一致', 'mobile.require' => '请输入手机号码', 'mobile.regex' => '请输入一个合法的手机号码', ]; // 场景验证 protected $scene = [ //用户添加场景验证 'add' => ['username','password','rePassword','mobile'], ]; // 自定义手机号码校验规则 protected $regex = ['mobile' => '^1[3|4|5|6|7|8][0-9]\d{4,8}$']; /** * 功能描述: 自定义密码复杂度验证 * @author 救火队队长 * @param $value 验证数据,这里指密码的值 * @param $rule 验证规则 * @param array $data 用户提交的数据 * @return bool */ protected function checkPwd($value, $rule, $data = []) { if ((preg_match('/[a-z]/', $value)) && (preg_match('/[0-9]/', $value)) && (preg_match('/[A-Z]/', $value))) { return true; } return false; } } ```