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 \Illuminate\Validation\Factory
{ private static $message = 'ok';
private static $headers =
[
'e' => 'rules/data is empty',
'na' => 'rules/data is not a array'
];
/***
* 创建实例
*
* @return \Illuminate\Validation\Factory
*/
public static function getInstance()
{
static $validator = null;
if ($validator === null) {
$test_translation_path = __DIR__.'/lang';
$test_translation_locale = 'en';
$translation_file_loader = new \Illuminate\Translation\FileLoader(new \Illuminate\Filesystem\Filesystem, $test_translation_path);
$translator = new \Illuminate\Translation\Translator($translation_file_loader, $test_translation_locale);
$validator = new \Illuminate\Validation\Factory($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 \Illuminate\Validation\Validator
*/
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 (Rester\Validator::validators($rules,$data)) {
echo 'ok';
}else{
echo Rester\Validator::getMessage();
}
}

至此, 大功告成~

  

关于脱离laravel框架使用Illuminate/Validation验证器的更多相关文章

  1. [麦先生]在Laravel框架里实现邮箱验证---发送邮件

    在经过一段时间的使用后,发现在项目中很多地方需要用到用户验证,以短信验证和邮箱验证为主流趋势,小麦总结了如果在Laravel框架中实现发送邮件功能,以后会陆续更上如何实现短信验证..... 在.env ...

  2. 关于laravel框架的Auth::attempt验证失败

    按照官方文档进行认证 发现不管怎么样都是失败 if (Auth::attempt(array('email' => $email, 'password' => $password), tr ...

  3. 基于struts2框架-自定义身份证号验证器

    自定义拦截器的步骤: 1.定义一个验证器的类: > 自定义的验证器都需要实现 Validator接口.  > 可以选择继承 ValidatorSupport 或 FieldValidato ...

  4. Laravel框架 -- Validator 可用的验证规则

    accepted 字段值为 yes, on, 或是 1 时,验证才会通过.这在确认"服务条款"是否同意时很有用. active_url 字段值通过 PHP 函数 checkdnsr ...

  5. laravel框架中注册信息验证

    .路由配置 <?php Route::. 控制器分配页面及验证表单提交内容 <?php .form 表单验证 {{ Form::open(array().slideUp();   < ...

  6. validation验证器指定action中某些方法不需要验证

    今天写代码时,遇到个问题,在一个输入数据的页面有一个按钮,单击会发出请求从数据库中取数据,在这里出现问题,单击该按钮,配置的validation起作用,该请求没有到达后台的action 点击按钮选择作 ...

  7. [麦先生]Laravel框架实现发送短信验证

    今天在做到用户注册和个人中心的安全管理时,我借助实现第三方短信平台在Laravel框架中进行手机验证的设置;  由于我们做的是一个为客户提供医疗咨询和保健品网站,所以对客户个人隐私的保护显得尤为重要, ...

  8. laravel 框架登录 实际操作

    //登录中间件 Route::group(['middleware'=>'checkage'],function (){ Route::get('/mou/list','MouControlle ...

  9. 【Android Developers Training】 93. 创建一个空验证器

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

随机推荐

  1. nodejs之socket.io模块——实现了websocket协议

    Nodejs实现websocket的4种方式:socket.io.WebSocket-Node.faye-websocket-node.node-websocket-server,主要使用的是sock ...

  2. 我的Java设计模式-策略模式

    今天给大家说说田忌赛马的故事.如有雷同,纯属巧合!话说在战国时期,群雄割据,硝烟四起,茶余饭后还是少不了娱乐活动的,其中赛马是最火爆的.一天,孙膑看到田忌像个死鸡似的就知道肯定赛马又输给了齐威王,立马 ...

  3. JAVA的helloworld

    java环境设置------------- 在环境变量中设置以下三个变量:JAVA_HOME=C:\j2sdk1.4.1 //可以改为相应的目录CLASSPATH=%JAVA_HOME%\lib\to ...

  4. V4L2驱动的移植与应用(一)

    V4L2(video for linux) 可以支持多种设备,它可以有以下5种接口: 1.视频采集接口(video capture interface):这种应用的设备可以是高频头或者摄像头.V4L2 ...

  5. asp.net mvc razor布局页中a标签的href的跳转问题

    笔者做了一个文件上传系统,文件上传后,保存在wwwroot目录的file文件夹中,并把该文件的路径保存到数据库中, 如这样的一个路径保存在数据库: file/b775f487-0127-41e0-9d ...

  6. iBatis基础知识

    iBatis简介: 特点:结构性好,小巧,容易上手 搭建环境: 1.创建java 项目 2.导入(3个)jar包:ibatis-2.3.0.667.jar,mysql驱动包,Junit测试包 3.配置 ...

  7. C#密封类和密封方法--C#基础

    1.密封类 1)不是所有的类都可以继承,不能别继承的类叫做密封类.如果一个类不希望被继承.被派生可以采用关键字sealed,下面Class2不能继承Class1 Class1.cs: namespac ...

  8. 【BZOJ2754】喵星球上的点名(AC自动机)

    [BZOJ2754]喵星球上的点名(AC自动机) 题面 BZOJ 题解 友情提示:此题请不要在cogs上提交,它的数据有毒 对于点名串构建\(AC\)自动机 然后把名字丢进去进行匹配, 大力统计一下答 ...

  9. 递归方法,查询出树该组织及以下组织的组织ID

    -- 查询出该组织下所有组织id的集合 --方法一: public String getAllOrgidsTwo(Integer orgid){ List<Integer> orgids= ...

  10. wpf研究之道-ProgressBar(进度条)控件

    ProgressBar控件,非常有用.它在什么情况下有用呢?如何使用?带着这两个问题,我们探讨下. 如果程序需要很长时间来运行,用户在不知道的情况下,以为程序已经"卡死"了,没有响 ...