Blogger Information
Blog 38
fans 0
comment 3
visits 43721
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
tp5.1验证
意外的博客
Original
2667 people have browsed it

1.独立验证:也就是小范围进行数据验证,不用另外写一个验证类引入;

//首先在当前控制器下引入框架的验证类;

use think\Validate;

//在需要验证的方法中写入一下代码;
//验证规则
$rule = [
    'name'  => 'unique:table(表名必须有)|require|max:25',
    'age'   => 'number|between:1,120',
    'email' => 'email',];
 //验证错误信息;
$msg = [
    'name.require' => '名字不能为空',
    'name.unique' => '名字不能重复'
    'name.max'     => '不能超过25个字符',
    'age.number'   => '年龄必须是数字',
    'age.between'  => '年龄在1到120之间',
    'email'        => '邮箱格式不正确',
    ];
//需要验证的数据;
$data = [
    'name'  => '张三',
    'age'   => 122,
    'email' => 'zhangsan@qq.com',
    ];
$validate = Validate::make($rule)->message($msg);
$result = $validate->check($data);
if(!$result){
 echo $validate->getError();
 //ajax返回;
 // return $info = ['code'=>0,'msg'=>$validate->getError()];
 }

2.验证器验证

首先在和控制器平级层创建一个文件夹为validate,里面有文件,文件名对应当前的控制器名,如在admin控制器需要验证,文件名就为admin.php

namespace app\index\validate;
use think\Validate;
class Admin 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'        => '邮箱格式错误',    
    ];
    
}

在控制器中调用;下面会引入上面2的验证类;

namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
    public function index()
    {
    //需要验证的数据;一般为前端返回的数据;
        $data = [
            'name'  => 'thinkphp',
            'email' => 'thinkphp@qq.com',
        ];
        //注意app前面有一个反斜杠;
        $validate = new \app\index\validate\Admin;
          // $res = $validate->check($data);
        if (!$validate->check($data)) {
            dump($validate->getError());
            
        }
    }
}

3.验证场景

就是在验证类中增加一个规则
 protected $scene = [
        'edit'  =>  ['name','age'],
        'add' => ['name'],
    ];
    
    //控制器中
    //在验证场景,表示在编辑的时候,只会验证name字段;
    if (!$validate->scene('edit')->check($data)) {
            dump($validate->getError());
            
        }


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post