hush/validate

验证器

Installs: 8

Dependents: 0

Suggesters: 0

Security: 0

pkg:composer/hush/validate

v1.0.7 2025-12-09 08:07 UTC

This package is auto-updated.

Last update: 2025-12-09 08:08:31 UTC


README

解决问题

  1. 解决重复书写参数问题,在接口接收一次,在验证器又要重写一遍
  2. 解决唯一性字段验证问题,添加的时候需要验证某个字段唯一性,编辑的时候需要验证某个字段唯一性(需要排除自身)
  3. 解决单条数据是否存在的问题

使用方法

  1. 安装插件composer require hush/validate
    composer require hush/validate
    
  2. 生成验证器
    php think validate User
    
  3. 在控制器中使用
    $params = (new \app\validate\Admin())->readScene(request()->action());
    
  4. 在验证器中定义场景

    checkUnique--第一个字段是模型名称,第二个字段是需要验证唯一性的字段,第三个字段是排除自身的主键字段(就是你传进来的主键字段)
     protected $rule = [
         'username' => 'max:20|checkUnique:Admin,username,admin_id',
         'admin_id' => 'checkEven:Admin',
         'password' => 'max:32',
         'nickname' => 'max:50',
         'status' => 'in:0,1',
         'role_id' => 'number|checkEven:Role',
     ];
     protected $message = [
         'username.max' => '用户名不能超过20个字符',
         'password.max' => '密码不能超过32个字符',
         'nickname.max' => '昵称不能超过50个字符',
         'status.in' => '状态只能是 0 或 1',
         'role_id.number' => '角色ID必须为数字',
     ];
     scene里面写什么就接收什么,不写的全部不接受,传了就验证不传就不验证
     protected $scene = [
         'addAdmin' => ['username', 'role_ids', 'password', 'email', 'mobile'],
          
     ];
     must里面只写必传字段,且必定验证
     protected $must = [
         'addAdmin' => ['username', 'password', 'email', 'mobile'],
     ];
     protected $field = [
         'username' => '用户名',
         'password' => '密码',
         'nickname' => '昵称',
         'role_id' => '角色',
         'Admin' => '管理员',//大写的就是模型名称,不是表字段
     ];
     // 自定义验证规则,检查单条数据是否存在
    public function checkEven(mixed $value, mixed $rule, array $data = []): string|bool
     {
         return parent::checkExist($value, $rule, $data);
     }