自用验证类封装

class Validate
{
    public $rules = [];
    public $message = [];

    public function __construct()
    {
        Validator::extend("empty", function($attribute, $value, $parameters, $validator) {
            return true;
        });
        Validator::extend("arr", function($attribute, $value, $parameters, $validator) {
            if(isset($parameters[0])) {
                switch ($parameters[0]) {
                    case "int":
                        return !array_filter($value, function ($v) { return !is_integer($v); });
                    case "number":
                        return !array_filter($value, function ($v) { return !is_numeric($v); });
                    case "bool":
                        return !array_filter($value, function ($v) { return !is_bool($v); });
                    case "string":
                        return !array_filter($value, function ($v) { return !is_string($v); });
                    default:
                        return is_array($value);
                }
            }
            return is_array($value);
        });
    }

    public static function M($p = null) {
        if($p === null) {
            $p = Request::all();
        }
        $v1 = new static;
        $v2 = Validator::make($p, $v1->rules, $v1->message);
        if($v2->fails()) {
            throw new ParamException($v2->errors()->first());
        }
        return $v2->validate();
    }
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!