常用写法
第一种方法:新建一个控制器类,然后其他控制器直接调用
namespace app\index\validate;
use think\Validate;
class User extends Validate
{
protected $rule = [
'name' => 'require|max:25',
'email' => 'email',
];
protected $message = [
'name.require' => '用户名必须',
'email' => '邮箱格式错误',
];
protected $scene = [
'add' => ['name','email'],
'edit' => ['email'],
];
}
$result = $this->validate($data,'User');
if(true !== $result){
dump($result);
}
第二种方法:直接在控制器写验证规则
$result = $this->validate($json_data,
[
"username|用户名称" => "require|min:4|max:13|alphaNum",
'password|密码'=>'require|min:8|max:16',
"password_confirm|确认密码" => "require|confirm:password",
"role_id|权限选择" =>"require"
]
);
if (true !== $result) {
$this->error($result);
}
第三种方法:模型验证等等,具体参考开发文档:点我
内置验证规则
use think\Validate;
'name'=>'require'
'num'=>'number'
'num'=>'integer'
'num'=>'float'
'num'=>'boolean'
'email'=>'email'
'info'=>'array'
'accept'=>'accepted'
'date'=>'date'
'name'=>'alpha'
'name'=>'alphaNum'
'name'=>'alphaDash'
'name'=>'chs'
'name'=>'chsAlpha'
'name'=>'chsAlphaNum'
'name'=>'chsDash'
'name'=>'cntrl'
'name'=>'graph'
'name'=>'print'
'name'=>'lower'
'name'=>'upper'
'name'=>'space'
'name'=>'xdigit'
'host'=>'activeUrl'
'url'=>'url'
'ip'=>'ip'
'create_time'=>'dateFormat:y-m-d'
'mobile'=>'mobile'
'id_card'=>'idCard'
'mac'=>'macAddr'
'zip'=>'zip'
'num'=>'in:1,2,3'
'num'=>'notIn:1,2,3'
'num'=>'between:1,10'
'name'=>'length:4,25'
'name'=>'max:25'
'name'=>'min:5'
'begin_time' => 'after:2016-3-18',
'end_time' => 'before:2016-10-01',
'expire_time' => 'expire:2016-2-1,2016-10-01',
'name' => 'allowIp:114.45.4.55',
'name' => 'denyIp:114.45.4.55',
'repassword'=>'require|confirm:password'
'password'=>'require|confirm'
'name'=>'require|different:account'
'score'=>'eq:100'
'num'=>'=:100'
'num'=>'same:100'
'score'=>'egt:60'
'num'=>'>=:100'
'score'=>'gt:60'
'num'=>'>:100'
'score'=>'elt:100'
'num'=>'<=:100'
'score'=>'lt:100'
'num'=>'<:100'
'price'=>'lt:market_price'
'price'=>'<:market_price'
'ip'=>'filter:validate_ip'
'zip'=>'\d{6}',
'zip'=>'regex:\d{6}',
'accepted'=>['regex'=>'/^(yes|on|1)$/i'],
'name' => 'unique:user',
'name' => 'unique:user,account',
'name' => 'unique:user,account,10',
'name' => 'unique:user,account,10,user_id',
'name' => 'unique:user,status^account',
'name' => 'unique:user,status=1&account='.$data['account'],
'password'=>'requireIf:account,1'
'password'=>'requireWith:account'
'age'=>'requireCallback:check_require|number'
行为验证
'data'=>'behavior:\app\index\behavior\Check