💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 验证场景 验证器重支持定义场景,并且验证不同场景的数据,例如: ~~~ class ArticleValidate extends Validate { constructor() { const rules = { 'id' : 'require|number', 'content' : 'require|length:1,2000', 'title' : 'require|chsDash|length:4,50' } const message = { 'id.require' : '缺少参数:文章Id', 'id.number' : '参数错误:文章Id', 'content.require' : '文章内容必须填写', 'content.length' : '文章长度为1~2000个字符', 'title.require' : '文章标题必须填写', 'title.chsDash' : '文章标题格式错误', 'title.length' : '文章标题长度为4~50个字符', } super(rules,message); this.setScene({ 'add' : 'content,title', 'edit': 'id,content,title', 'del' : 'id' }); } } ~~~ 然后可以在验证方法中制定验证的场景 ~~~ $data = { 'content' : '文章内容', 'title' : '文章标题' }; const Article = new ArticleValidate(); if(!Article.setSceneName('add').check($data)){ console.log(Article.getError()) } ~~~ 可以单独为某个场景定义方法(方法的命名规范是`scene`+场景名),并且对某些字段的规则重新设置,例如: * 注意:场景名不区分大小写,且在调用的时候不能将驼峰写法转为下划线 ~~~ class ArticleValidate extends Validate { constructor() { const rules = { 'id' : 'require|number', 'content' : 'require|length:1,2000', 'title' : 'require|chsDash|length:4,50' } const message = { 'id.require' : '缺少参数:文章Id', 'id.number' : '参数错误:文章Id', 'content.require' : '文章内容必须填写', 'content.length' : '文章长度为1~2000个字符', 'title.require' : '文章标题必须填写', 'title.chsDash' : '文章标题格式错误', 'title.length' : '文章标题长度为4~50个字符', } super(rules,message); } sceneEdit(){ return this.only(['id','content','title']) .append('id','max:10000') .remove('content','length') .remove('title',null) .append('title','require|chsDash|length:4,50') } } ~~~ >[danger] `setSceneName`验证场景在调用`check`方法以后会被重置,并不会对下一次`check`生效 主要方法说明如下: | 方法名 | 描述 | | --- | --- | | only | 场景需要验证的字段 | | remove | 移除场景中的字段的部分验证规则 | | append | 给场景中的字段需要追加验证规则 |