数据验证


    v2.6.8+

    在v2.6.8版本中对Validate做了增强,除了以上的直接调用方法外,还可以有以下用法:

    1. use Cml\Vendor\Validate;
    2. //初始化实例 传入包含要验证数据的数组 这边是$_POST
    3. $v = new Validate($_POST);
    4. //type、ptime、status、action 必传
    5. $v->rule('require', ['type', 'ptime', 'status', 'action']);
    6. //type、ptime、status 必须为整形
    7. $v->rule('int', ['type', 'ptime', 'status']);
    8. $v->rule('in', ['ptime'], range(0, 23));
    9. //设置字段->实际显示字段的映射关系
    10. $v->label(array(
    11. 'type' => '类型',
    12. 'status' => '状态',
    13. 'action' => '操作',
    14. ));
    15. //批量校验
    16. if(!$v->validate()) {
    17. $error = $v->getErrors();//获取错误信息
    18. }

    内置验证规则

    自定义验证规则

    除了以上内置的校验规则外,还可以自定义验证规则,方法如下:

    1. <?php
    2. use Cml\Vendor\Validate;
    3. //添加
    4. //$value的值就是$_POST['test']的值
    5. //$params是参数数组,就是下面$v->rule...中的[1, 2]
    6. return false;
    7. }, '就是不让你通过检验');
    8. $v = new Validate($_POST);
    9. //使用
    10. $v->rule('test', 1, 2);
    11. ...

    提示信息

    如果不想用内置的语言包也可以使用 message自定义提示信息,使用方法如下:

    1. <?php
    2. use Cml\Vendor\Validate;
    3. $v = new Validate($_POST);
    4. $v->rule('require', ['type', 'ptime', 'status', 'action'])
    5. ->message('{field} 必须填写!');