'require', 'avatar' => 'require', 'name' => 'require', 'account' => 'require|checkAccount', 'password' => 'length:6,32|checkPassword', 'new_password' => 'requireWith:password|length:6,32', 'confirm_password' => 'requireWith:password|confirm:new_password', ]; protected $message = [ 'admin_id.require' => '参数错误', 'avatar.require' => '请选择头像', 'account.require' => '请输入账号', 'name.require' => '请输入名称', 'password.length' => '当前密码长度须在6-32位字符', 'new_password.requireWith' => '修改密码时新的密码必填', 'new_password.length' => '新的密码长度须在6-32位字符', 'confirm_password.requireWith' => '修改密码时确认密码必填', 'confirm_password.confirm' => '确认密码与新密码不匹配', ]; public function sceneSetAdmin() { return $this->only(['admin_id','avatar','account','name','password','new_password','confirm_password']); } /** * @notes 检验账号是否被占用 * @param $value * @param $rule * @param $data * @return bool|string * @author ljj * @date 2022/4/18 2:45 下午 */ public function checkAccount($value, $rule, $data) { $where[] = ['account', '=', $value]; $where[] = ['id', '<>', $data['admin_id']]; $admin = Admin::where($where)->findOrEmpty(); if (!$admin->isEmpty()) { return '账号已被占用'; } return true; } /** * @notes 检验当前密码是否正确 * @param $value * @param $rule * @param $data * @return bool|string * @author ljj * @date 2022/4/18 3:05 下午 */ public function checkPassword($value, $rule, $data) { $passwordSalt = Config::get('project.unique_identification'); $password = create_password($value, $passwordSalt); $where[] = ['password', '=', $password]; $where[] = ['id', '=', $data['admin_id']]; $admin = Admin::where($where)->findOrEmpty(); if ($admin->isEmpty()) { return '当前密码不正确'; } return true; } }