开发工具 2025年06月7日
0 收藏 0 点赞 259 浏览 3642 个字
摘要 :

可以在定义验证规则的时候定义场景,并且验证不同场景的数据,例如: $rule = [         'name' &nb……

可以在定义验证规则的时候定义场景,并且验证不同场景的数据,例如:

$rule = [    
    'name'  => 'require|max:25',    
    'age'   => 'number|between:1,120',    
    'email' => 'email',
];
$msg = [    
    'name.require' => '名称必须',    
    'name.max'     => '名称最多不能超过25个字符',    
    'age.number'   => '年龄必须是数字',    
    'age.between'  => '年龄只能在1-120之间',    
    'email'        => '邮箱格式错误',
];
$data = [    
    'name'  => 'thinkphp',    
    'age'   => 10,    
    'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule);
$validate->scene('edit', ['name', 'age']);
$result = $validate->scene('edit')->check($data);

表示验证edit场景(该场景定义只需要验证name和age字段)。

如果使用了验证器,可以直接在类里面定义场景,例如:

namespace appindexvalidate;use thinkValidate;class User extends Validate{    
protected $rule =   [        
'name'  => 'require|max:25',        
'age'   => 'number|between:1,120',        
'email' => 'email',    
    ];    
    protected $message  =   [        
        'name.require' => '名称必须',        
        'name.max'     => '名称最多不能超过25个字符',        
        'age.number'   => '年龄必须是数字',        
        'age.between'  => '年龄只能在1-120之间',        
        'email'        => '邮箱格式错误',    
    ];    
    protected $scene = [        
        'edit'  =>  ['name','age'],
    ];
    
}

然后再需要验证的地方直接使用 scene 方法验证

$data = [    
    'name'  => 'thinkphp',    
    'age'   => 10,    
    'email' => 'thinkphp@qq.com',
];

$validate = new appindexvalidateUser($rule);
$result = $validate->scene('edit')->check($data);

可以在定义场景的时候对某些字段的规则重新设置,例如:

namespace appindexvalidate;use thinkValidate;class User extends Validate{    
protected $rule =   [        
    'name'  => 'require|max:25',        
    'age'   => 'number|between:1,120',        
    'email' => 'email',    
    ];    
        protected $message  =   [        
        'name.require' => '名称必须',        
        'name.max'     => '名称最多不能超过25个字符',        
        'age.number'   => '年龄必须是数字',        
        'age.between'  => '年龄只能在1-120之间',        
        'email'        => '邮箱格式错误',    
    ];    
        protected $scene = [        
        'edit'  =>  [
        'name','age'=>'require|number|between:1,120'],
    ];
    
}

可以对场景设置一个回调方法,用于动态设置要验证的字段,例如:

$rule = [    
    'name'  => 'require|max:25',    
    'age'   => 'number|between:1,120',    
    'email' => 'email',
];
$msg = [    
    'name.require' => '名称必须',    
    'name.max'     => '名称最多不能超过25个字符',    
    'age.number'   => '年龄必须是数字',    
    'age.between'  => '年龄只能在1-120之间',    
    'email'        => '邮箱格式错误',
];
$data = [    
    'name'  => 'thinkphp',    
    'age'   => 10,    
    'email' => 'thinkphp@qq.com',
];
$validate = new Validate($rule);
$validate->scene('edit', function($key,$data){    return 'email'==$key && isset($data['id'])? true : false;
});
$result = $validate->scene('edit')->check($data);

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/3895.html

管理员

相关推荐
2025-06-07

PHPcms是中国国内一款知名的开源网站建设系统,采用PHP语言编写,基于MVC架构。它包含了许多常用的…

251
2025-06-07

Java 开源 CMS 以其高效、稳定、安全等优势逐渐成为了众多企业和个人选择的首选。本文将为大家介绍…

420
2025-06-07

Python是一种高级编程语言,它是一种解释型的、面向对象的、带有动态语义的高级程序设计语言。Pytho…

950
2025-06-07

Eyoucms插件config.php配置文件如下: return array(       &…

464
2025-06-07

可以在定义验证规则的时候定义场景,并且验证不同场景的数据,例如: $rule = [ &nb…

259
2025-06-07

Eyoucms是可以对文章的属性进行自定义的,具体是在后台找到功能地图,然后如图所示的文档属性, …

867
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号