• thinkphp5.0验证的封装


    刚学完这个验证器封装,刚开始还是有点晕的,后面仔细看了两遍,才慢慢感觉到了继承这个方法的好处,看来还得慢慢锻炼锻炼;

    问题:
    结合上篇的自定义验证器,发现每次使用验证器都重复这样写代码;
    //验证器
    $validate = new ValidateCustom();
    //执行 批量验证
    $result = $validate->batch()->check($data);
    //输出错误提示
    var_dump($validate->getError());

    看了他们写的代码如下:

    1.校验的基类
    class BaseValidata extends Validata{

    //把那段校验的代码放在此次

    /**
    * 验证方法并返回相应的验证错误信息
    */
    public function goCheck()
    {

    $data = Request::instance()->param();
    $result = $this->check($data);
    if ($result) {
    return true;
    } else {
    $er = $this->getError();
    throw new Exception($er);
    }
    }
    }

    2.自定义验证器,自定义验证规则

    class ValidateCustom extends BaseValidata
    {
    protected $rule = [
    'id' => 'require|isPositiveInteger'
    ];


    /**
    * 判断一个数是否为正整数
    */
    protected function isPositiveInteger($value, $rule = '', $data = '', $field = '')
    {

    if (is_numeric($value) && is_int($value + 0) && ($value + 0) > 0) {
    return true;
    } else {
    return $field . '必须为正整数';
    }
    }

    }
    3.使用
    (new ValidateCustom())->goCheck();

    是不是有点感觉了!



  • 相关阅读:
    Java 数组算法列题解析
    Java数组总结
    go实现汉诺塔
    go实现归并排序
    css清除浮动深度解析
    jquery阻止事件冒泡
    java
    getComputedStyle/currentStyle/style之间的爱恨情仇
    js基础总结
    元素堆叠问题、z-index、position
  • 原文地址:https://www.cnblogs.com/fangyinghua/p/7401115.html
Copyright © 2020-2023  润新知