在模型中的验证方式如下:

$User = new User;
$result = $User->validate(
    [        'name'  => 'require|max:25',        'email'   => 'email',
    ],
    [        'name.require' => '名称必须',        'name.max'     => '名称最多不能超过25个字符',        'email'        => '邮箱格式错误',
    ]
)->save($data);if(false === $result){    // 验证失败 输出错误信息
    dump($User->getError());
}

第二个参数如果不传的话,则采用默认的错误提示信息。

如果使用下面的验证器类的话:

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'],
    ];    
}

模型验证代码可以简化为:

$User = new User;// 调用当前模型对应的User验证器类进行数据验证$result = $User->validate(true)->save($data);if(false === $result){    // 验证失败 输出错误信息
    dump($User->getError());
}

如果需要调用的验证器类和当前的模型名称不一致,则可以使用:

$User = new User;// 调用Member验证器类进行数据验证$result = $User->validate('Member')->save($data);if(false === $result){    // 验证失败 输出错误信息
    dump($User->getError());
}

同样也可以支持场景验证:

$User = new User;// 调用Member验证器类进行数据验证$result = $User->validate('User.edit')->save($data);if(false === $result){    // 验证失败 输出错误信息
    dump($User->getError());
}


 小秋同学  验证  2021-03-24 08:31:50    收藏:  赞(820)
源码网-一个不错的学习网站
本文地址:https://www.yuanma.cc/article/yanzheng/1500.html 复制链接 如果还有疑问,欢迎加入我们的QQ交流群:887790 加入Q群 易优最新程序下载: 点击下载
QQ在线咨询