Eyoucms程序开发:验证场景
验证场景
版本 | 新增功能 |
---|---|
5.0.4 |
增加hasScene 方法用于检查是否存在验证场景 |
可以在定义验证规则的时候定义场景,并且验证不同场景的数据,例如:
$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 app\index\validate;
use think\Validate;
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 \app\index\validate\User($rule);
$result = $validate->scene('edit')->check($data);
可以在定义场景的时候对某些字段的规则重新设置,例如:
namespace app\index\validate;
use think\Validate;
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);
相关文档
- 虫虫博客群发功能虽操作简单,实际使用却状况百出
- 下载旺道SEO优化软件,界面丑功能差,老站长满心失落
- 惊删电脑重要文件?别怕!快照回档功能来救你
- 揭秘百度点击器:自动刷点击量原理及应对验证码方法
- 试用站优云:界面复古功能全,自动优化能否给网站带来改变?
- 乐云SEO排名软件:界面丑但功能实在,是SEOer偷懒工具?
- 网站诊断:评估性能,功能和用户体验
- 聊聊SEO领域的老古董工具seo808及其基本功能
- 交换朋友链接在在线营销中的重要性和功能
- 设计师在线房屋的概念:重要性,功能和见解
- 在Baidu上介绍十个强大的工具:功能和实际应用
- Win7优化大师官网全解析,功能亮点与安全下载指南,老用户必看技...
- 用了百度申请闭站功能后 出现问题
- 小旋风万能蜘蛛池x8.3免权如何实现永久使用?2025最新破解教...
- 小旋风万能蜘蛛池完美破版2025亲测可用?功能限制与安全风险全解...
- 小旋风万能蜘蛛池2025实:3大核心功能提升网站收录率90%
- 小旋风收音机如何免费听万+频道?2025最新版扫码租车功能实测
- 小旋风收音机2025破解版载安全吗?官方正版渠道推荐,破解与正版...
- 医疗行业泛目录实战:小风模板干扰码+地域跳转插件效果验证
- 电商站群必备!旺道SEO优软件批量管理功能深度测评
上一篇: Eyoucms程序开发:错误信息
下一篇: Eyoucms程序开发:控制器验证