1.关于Illuminate/Validation验证器

  Validation 类用于验证数据以及获取错误消息。

  github地址:github.com/illuminate/validation

  文档地址:https://docs.golaravel.com/docs/4.1/validation/

2.使用composer 

  如何使用composer:composer使用

  packagist:https://packagist.org/package…

  composer.json:

{
  "require": {
    "illuminate/validation": "^5.5"
  }
}

3.将vendor引入,自定义类

<?php
/**
 * Created by PhpStorm.
 * User: Richard
 * Date: 2017/11/28
 * Time: 10:57
 */
namespace Rester;
class Validator extends IlluminateValidationFactory
{
 
    private static $message = 'ok';
    private static $headers =
        [
            'e' => 'rules/data is empty',
            'na' => 'rules/data is not a array'
        ];
    /***
     * 创建实例
     *
     * @return IlluminateValidationFactory
     */
    public static function getInstance()
    {
        static $validator = null;
        if ($validator === null) {
            $test_translation_path = __DIR__.'/lang';
            $test_translation_locale = 'en';
            $translation_file_loader = new IlluminateTranslationFileLoader(new IlluminateFilesystemFilesystem, $test_translation_path);
            $translator = new IlluminateTranslationTranslator($translation_file_loader, $test_translation_locale);
            $validator = new IlluminateValidationFactory($translator);
        }
        return $validator;
    }
 
    /**
     * @param array $rules  验证规则
     * @param array $data   验证数据
     * @return bool
     */
    public static function validators($rules=[],$data=[])
    {
        if( empty($rules) || empty($data) )
        {
            self::$message = self::$headers['e'];
            return false;
        }
        if(is_array($rules) && is_array($data))
        {
            $v = self::vmake($rules,$data);
            if( $v->fails() )
            {
                self::$message = $v->messages();
                return false;
            }
            return true;
        }
        self::$message = self::$headers['na'];
        return false;
    }
 
    /**
     * 验证实例
     * @param $rules
     * @param $data
     * @return IlluminateValidationValidator
     */
    private static function vmake($rules,$data)
    {
        $v = self::getInstance()->make($data,$rules);
        return $v;
    }
 
    /**
     * 获取错误消息
     * @return string
     */
    public static function getMessage()
    {
        return self::$message;
    }
}

4.在项目中引入自定义类,调用验证

//验证数据demo
public function insert()
{
    //验证数据
    $data = [
        'name' => '1'
    ];
    //验证规则
    $rules = [
            'name' => 'required|string|min:2|max:5',
        ];
    if (ResterValidator::validators($rules,$data)) {
        echo 'ok';
    }else{
            echo ResterValidator::getMessage();
    }
}

夜河资源网提供的所有内容仅供学习与交流。通过使用本站内容随之而来的风险以及法律责任与本站无关,所承担的法律责任由使用者承担。
一、如果您发现本站侵害了相关版权,请附上本站侵权链接和您的版权证明一并发送至邮箱:yehes#qq.com(#替换为@)我们将会在五天内处理并断开该文章下载地址。
二、本站所有资源来自互联网整理收集,全部内容采用撰写共用版权协议,要求署名、非商业用途和相同方式共享,如转载请也遵循撰写共用协议。
三、根据署名-非商业性使用-相同方式共享 (by-nc-sa) 许可协议规定,只要他人在以原作品为基础创作的新作品上适用同一类型的许可协议,并且在新作品发布的显著位置,注明原作者的姓名、来源及其采用的知识共享协议,与该作品在本网站的原发地址建立链接,他人就可基于非商业目的对原作品重新编排、修改、节选或者本人的作品为基础进行创作和发布。
四、基于原作品创作的所有新作品都要适用同一类型的许可协议,因此适用该项协议, 对任何以他人原作为基础创作的作品自然同样都不得商业性用途。
五、根据二〇〇二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可不经软件著作权人许可,无需向其支付报酬!
六、鉴此,也望大家按此说明转载和分享资源!本站提供的所有信息、教程、软件版权归原公司所有,仅供日常使用,不得用于任何商业用途,下载试用后请24小时内删除,因下载本站资源造成的损失,全部由使用者本人承担!