为了账号安全,请及时绑定邮箱和手机立即绑定

面对批量提交的数据,在使用saveAll方法前,如何验证其数据有效性

在保存单一记录数据前,有多种方法验证其数据有效性,如使用独立的验证器,或控制器的validate方法都可进行。但面对批量提交的数据,如何有效地验证其数据有效性,一直没有找到好的方法,通过查看源码,发现模型类有一个validate属性,在调用saveAll方法时,会自动使用该属性进行验证,但如果想使用自定义验证方法,不知如何使用?

正在回答

1 回答

独立验证

任何时候,都可以使用Validate类进行独立的验证操作,例如:

$validate = new Validate([
    'name'  => 'require|max:25',
    'email' => 'email']);$data = [
    'name'  => 'thinkphp',
    'email' => 'thinkphp@qq.com'];if (!$validate->check($data)) {
    dump($validate->getError());}

验证器

这是5.0推荐的验证方式,为具体的验证场景或者数据表定义好验证器类,直接调用验证类的check方法即可完成验证,下面是一个例子:

我们定义一个\app\index\validate\User验证器类用于User的验证。

namespace app\index\validate;use think\Validate;class User extends Validate{
    protected $rule = [
        'name'  =>  'require|max:25',
        'email' =>  'email',
    ];}

在需要进行User验证的地方,添加如下代码即可:

$data = [
    'name'=>'thinkphp',
    'email'=>'thinkphp@qq.com'];$validate = Loader::validate('User');if(!$validate->check($data)){
    dump($validate->getError());}

使用助手函数实例化验证器

$validate = validate('User');


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

面对批量提交的数据,在使用saveAll方法前,如何验证其数据有效性

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信