分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

thinkphp验证器

发布时间:2023-09-06 02:33责任编辑:彭小芳关键词:thinkphp

验证器类:$validate=new \think\Validate($rule,$message,$field);

独立验证:

//独立验证$rule=[ ???‘name‘ ?=> ‘require|max:25‘, ???‘email‘ => ‘email‘]$msg=[ ???‘name.require‘ => ‘名称必须‘, ???‘name.max‘ ????=> ‘名称最多不能超过25个字符‘, ???‘email‘ ???????=> ‘邮箱格式错误‘, ???];$field = [ ???‘name‘ ?=> ‘名称‘, ???‘email‘ => ‘邮箱‘, ???];$validate = new Validate($rule,$msg,$field); $data = [ ???‘name‘ => ‘thinkphp‘, ???‘email‘ => ‘thinkphp@qq.com‘]; if (!$validate->check($data)) { ???dump($validate->getError());}

make、rule、extend、setTypeMsg、message、scene、hasscene、batcch、check、getError

验证器:定义在模块下的validate文件夹内;

注意:Call to undefined function mb_strlen() :开启:extension=php_mbstring.dll; 还不行就就看看这extension_dir = "ext";还不行就绝对路径

前台页面

<form action="{:url(‘addFormData‘)}" method="post"> ???<input type="text" name="name" value="thinkphp"> ???<input type="text" name="email" value="thinkphp@qq.com"> ???<input type="text" name="zip" value="888888"> ???<input type="text" name="age" value="20"> ???<input type="text" name="status" value="2"> ???{:token(‘__token__‘, ‘sha1‘)} ???<input type="submit" value="提交"></form>

控制器:

<?phpnamespace app\index\controller;use think\Controller;class Test extends Controller{ ???public function index() ???{ ???????????????return $this->fetch(‘index@/Test/index‘); ???} ???public function addFormData(\think\Request $request) ???{ ???????$name=$request->post(‘name‘); ???????$email=$request->post(‘email‘); ???????$zip=$request->post(‘zip‘); ???????$age=$request->post(‘age‘); ???????$status=$request->post(‘status‘); ???????$token=$request->post(‘__token__‘); ???????????????$data = [ ???????????‘name‘=>$name, ???????????‘email‘=>$email, ???????????‘zip‘=>$zip, ???????????‘age‘=>$age, ???????????‘status‘=>$status, ???????????‘__token__‘=>$token ???????]; ???????$validate = \think\Loader::validate(‘test‘);//or ?$validate = validate(‘test‘); ???????//实例化后还可以动态添加规则 他将合并到Test验证rule属性里 ???????$validate->rule([ ???????????‘zip‘ ??=> ‘/^\d{6}$/‘, ???????????‘status‘=> ‘number|between:0,2‘ ???????]); ???????//实例化后还可以动态添加错误信息 他将合并到Test验证$message属性里 ???????$validate->message([ ???????????‘zip‘=>‘邮编格式不正确‘, ???????????‘status.between‘=>‘状态超出取值范围‘, ???????????‘status.number‘=>‘状态数据类型错误‘, ???????]);     //实例化后可以动态添加自定义的验证字段描述 ???????$validate->addField([ ???????????‘zip‘=>‘邮编‘, ???????????‘status‘=>‘状态‘, ???????]); ???????if(!$validate->check($data)){ ???????????dump($validate->getError()); ???????} ???????????}}

验证器:

<?phpnamespace app\index\validate;use think\Validate;class Test extends Validate{ ???//定义验证规则 ??|和数组都可以 ???protected $rule = [ ???????‘name‘ ?=> ?‘require|max:25‘, ???????‘email‘ => ?‘email‘, ???????‘age‘ ??=> [‘number‘,‘between‘=>‘1,120‘], ???????‘__token__‘=>‘token‘ ???]; ???//定义错误信息 ???protected $message ?= ??[ ???????‘name.require‘ => ‘名称必须‘, ???????‘name.max‘ ????=> ‘名称最多不能超过25个字符‘, ???????‘age.number‘ ??=> ‘年龄必须是数字‘, ???????‘age.between‘ ?=> ‘年龄只能在1-120之间‘, ???????‘email‘ ???????=> ‘邮箱格式错误‘, ???????]; ???//定义验证字段描述 ???protected $field=[ ????????‘name‘ ?=> ‘名称‘, ???????‘age‘ ??=> ‘年龄‘, ???????‘email‘ => ‘邮箱‘, ???????]; ???//定义场景(后面根数组是重新定义规则) ???protected $scene = [ ???????‘edit‘ ?=> ?[‘name‘,‘email‘,‘age‘=>‘require|number|between:1,120‘], ???]; ???/** ????* 自定义动态添加验证字段描述 ????*/ ???public function addField($name,$field=‘‘) ???????????{ ???????if (is_array($name)) { ???????????$this->field = array_merge($this->field, $name); ???????} else { ???????????$this->field[$name] = $field; ???????} ???????return $this; ???}}

thinkphp验证器

原文地址:https://www.cnblogs.com/lichihua/p/10428766.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved