tp5中验证的使用
ThinkPHP  /  管理员 发布于 5年前   880
官方手册分两独立验证,验证器进行验证;
1.独立验证
前台提交就不说了,直接贴控制器代码 $data = input('post.'); //验证 $validate = new Validate([ 'realname|真实姓名' => 'require|max:20', 'sex|性别' => 'in:男,女', 'cphone|常用手机' => 'require|regex:/^1[3458][0-9]{9}$/', 'bphone|备用手机' => 'require|regex:/^1[3458][0-9]{9}$/', 'qq'=>'require|number|max:11', 'email' => 'require|email', 'sfznum|身份证号' => ['require','regex'=>'/^(\d{18,18}|\d{15,15}|\d{17,17}x)$/'], 'birthday|出生日期' => 'require|date', 'sheng|省份' => 'require', 'shi|市/县' => 'require', 'qu|区' => 'require', 'address|具体位置' => 'require', 'yaoqin|邀请人' => 'regex:/^1[3458][0-9]{9}$/' ]); if (!$validate->check($data)) { dump($validate->getError()); }
效果图:
2.验证器验证 (下班咯 下次在补[2018-02-07补上])
验证器目录在应用根目录 文件名validate 验证器代码 namespace app\index\validate; use think\Validate; class Teacher extends Validate { protected $rule = [ 'name' => 'require|min:6|max:20', 'password|密码' => 'require|alphaDash|length:6,32', ]; protected $message = [ 'name.require' => '请输入用户名', 'name.min' => '用户名最少6位', 'name.max' => '用户名最大20位', 'password.require' => '请输入密码', 'password.length' => '密码长度必须是6~32位', ]; protected $scene = [ 'login' => ['name','password'], ]; } 控制器调用 public function login() { if ($_POST) { $data['name'] = trim(input('name')); $data['password'] = input('password'); $result = $this->validate($data,'Teacher.login'); if(true !== $result){ // 验证失败 输出错误信息 //dump($result); $arr = array('error' => 0,'info' => $result); echo json_encode($arr);exit; } }else { return view(); } }
效果:
博主 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..xiaoB 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..BUG4 在
你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..博主 在
go语言+beego框架中获取get,post请求的所有参数中评论 @ t1 直接在router.go文件中配就ok..Jade 在
如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号