You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.4 KiB
92 lines
2.4 KiB
<?php
|
|
declare (strict_types=1);
|
|
|
|
namespace app\api\validate;
|
|
|
|
use think\facade\Db;
|
|
use think\Validate;
|
|
|
|
class Manager extends Validate
|
|
{
|
|
/**
|
|
* 定义验证规则
|
|
* 格式:'字段名' => ['规则1','规则2'...]
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $rule = [
|
|
'id' => 'number|length:1,10',
|
|
'username|管理员账号' => "require|uniqueSite:system_user|length:4,20",
|
|
'truename|管理员真实姓名' => 'require|length:1,20',
|
|
'password|管理员密码' => 'require|length:6,20',
|
|
'sex|性别' => 'number|length:1,1',
|
|
'phone|手机号' => 'require|uniqueSite:system_user|mobile',
|
|
'email|邮箱' => 'email|uniqueSite:system_user',
|
|
'avatar|头像' => 'length:6,255',
|
|
];
|
|
|
|
/**
|
|
* 定义错误信息
|
|
* 格式:'字段名.规则名' => '错误信息'
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $message = [
|
|
'username.require' => '请输入管理员账号',
|
|
'username.length' => '管理员账号名称必需在4~20位之间',
|
|
'password2.confirm' => '新密码与确认密码不一致',
|
|
];
|
|
|
|
/**
|
|
* 验证场景规则
|
|
* @var array
|
|
*/
|
|
protected $scene = [
|
|
'read' => ['id'],
|
|
];
|
|
|
|
/**
|
|
* 修改场景验证
|
|
* @return Manager
|
|
*/
|
|
public function sceneUpdate()
|
|
{
|
|
return $this->remove('username', 'require')
|
|
->remove('password', 'require');
|
|
}
|
|
|
|
/**
|
|
* 修改密码场景验证
|
|
* @return Manager
|
|
*/
|
|
public function sceneUpdatePassword()
|
|
{
|
|
return $this->remove('username', 'require')
|
|
->remove('truename', 'require')
|
|
->remove('phone', 'require')
|
|
->append('password2|确认密码', 'require|confirm:password');
|
|
}
|
|
|
|
/**
|
|
* 重置密码场景验证
|
|
* @return Manager
|
|
*/
|
|
public function sceneResetPassword()
|
|
{
|
|
return $this->remove('username', 'require')
|
|
->remove('truename', 'require')
|
|
->remove('phone', 'require');
|
|
}
|
|
|
|
/**
|
|
* 自定义查询场景验证 可灵活设置验证字段
|
|
* @return Manager
|
|
*/
|
|
public function sceneLists()
|
|
{
|
|
return $this->only(['username', 'truename', 'sex'])
|
|
->remove('username', 'uniqueSite|require|length')
|
|
->append('username', 'min:1|max:20')
|
|
->remove('truename', 'require');
|
|
}
|
|
}
|
|
|