zoukankan      html  css  js  c++  java
  • 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();

    是不是有点感觉了!



  • 相关阅读:
    [Vijos] 天才的记忆
    [Vijos] 河蟹王国
    [Vijos] SuperBrother打鼹鼠
    [Vijos] 弱弱的战壕
    [洛谷P3792] 由乃与大母神原型和偶像崇拜
    【模板】乘法逆元
    [USACO13NOV]空荡荡的摊位Empty Stalls
    [USACO08OPEN]牛的车Cow Cars
    [SCOI2005]扫雷
    [USACO16OPEN]关闭农场Closing the Farm_Silver
  • 原文地址:https://www.cnblogs.com/fangyinghua/p/7401115.html
Copyright © 2011-2022 走看看