IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Laravel 验证器 -> 正文阅读

[PHP知识库]Laravel 验证器

Laravel 验证器

基本验证规则

accepted: 验证‘yes’,‘on’,‘true',’1‘
active_url:验证是否是一个有效的路径
after:date:验证是否在一个日期以后
after_or_equal:date:验证是否在一个日期或以后
alpha:验证是否全是英文字母
alpha_dash:验证是否全是英文字母,-,_
alpha_num:验证是否全是英文字母或数字
array:key1,key2:验证是否是数组,且包含key
bail:验证不通过则停止验证
before:date:验证是否在日期之前
before:date:验证是否在日期或之前
between:min,max:验证大小是否在区间,文字列长,数值大小,数组长度,文件大小
boolean:验证是否是伦理值(0,1,’0‘,’1‘,true,false)
confirmed:验证是否和字段{field}_confirmation值一样
current_password:api:验证密码是否和被认证的用户密码一致
date:验证是否是有效日期(strtotime())
data_equals:date:验证是否指定日期
date_format:format:验证日期格式
different:field:验证是否和指定值不同
digits:length:验证数值的位数是否为length
digits_between:min,max:验证该整数位数区间,不能为小数
dimensions:验证图片尺寸
					 min_width:最小宽度
					 max_width:最大宽度
					 min_height:最小高度
					 max_height:最大高度
					 width:宽度
					 height:高度
					 radio:宽高比
distinct:验证数组中没有重复的值
				strict:严格验证没有重复值(不理解)
				ignore_case:不区分大小写
email:验证邮件格式
			rfc:验证邮箱地址是否违反RFC
			strict:严格验证邮箱名是否违反RFC(不含警告)
			dns:验证邮箱域是否有效
			spoof:验证是否是通过其他语言字母伪装成的有效邮箱域(西里尔字母)
			filter:验证时过滤指定目标(php函数filter_var())
ends_with:foo,bar,...:验证是否已指定值结束
exclude_if:filed,val:如果指定filed的值为val,忽视之后的验证规则直接通过
exclude_unless:filed,val:如果指定filed的值不为val,忽视之后的验证规则直接通过
exists:table/model/database.table,column:验证指定的数据表字段中存在该值,不指定列名时使用filed名
file:验证文件是否上传成功
filled:验证字段存在时不为空
gt:field:验证该filed值是否大于指定filed值,同规则size,两值类型必须相同
gte:field:验证该filed值是否大于等于指定filed值,同规则size,两值类型必须相同
image:验证是否为图像(jpg、jpeg、png、bmp、gif、svg、webp)
in:foo,bar...:验证该filed值是否在指定值中
in_array:filed.*:验证该filed值在指定的filed值中
integer:验证是否为整数
ip:验证是否为IP地址形式
ipv4:验证是否为IPv4地址形式
ipv6:验证是否为IPv6地址形式
json:验证是否为有效的json文字列
lt:field:验证该filed值是否小于指定filed值,同规则size,两值类型必须相同
lte:field:验证该filed值是否小于等于指定filed值,同规则size,两值类型必须相同
max:验证不超过最大值,同规则size
mimetypes:text/plain,...:读取文件内容验证文件mime类型,可能存在误差
mimes:foo,bar,...:验证文件扩张子类型
min:验证超过最小值,同规则size
multiple_of:val:验证数值是否为val的倍数关系,小数精度16位以内
not_in:foo,bar,...:验证不在指定值群中
not_regex:验证不满足正则表达式
nullable:验证filed值为null
numeric:验证filed值为数值
present:验证filed是否存在,可以为空
prohibited:验证filed为空或者不存在
prohibited_if:field,val,...:如果指定field值为val等,验证该filed为空或者不存在
prohibited_unless:anotherfield,value,...:如果指定field值不为val等,验证该filed为空或者不存在
regex:验证满足正则表达式
required:验证存在且不为空,null,空数组,空对象,没有路径的文件
required_if:field,val,...:指定field为指定值时验证required,val为空时指代不存在或为空
required_unless:field,val,...:指定field不为指定值时验证required,val为null时指代不存在或为空
required_with:foo,bar,...:指定的field任意一个存在时验证required
required_with_all:foo,bar,...:指定的field全部存在时验证required
required_without:foo,bar,...:指定的field任意一个不存在时验证required
required_with_all:foo,bar,...:指定的field全部不存在时验证required
same:field:验证和指定field值相同
size:val:判断该field值与val的size是否相同,字符串(长度)。数值相等。数组(长度)。文件(大小kb)
				size:5
				integer|size:5
				numeric|size:5
				array|size:5
				file|size:512
starts_with:foo,bar,...:验证以指定值开头
string:验证是否是字符串,不包含null
timezone:验证是否是时区,基于timezone_identifiers_list 
unique:table/model/database.table,column,extraID,IDcolumn:验证除去指定ID外指定表格的ID列中是否唯一,ID列不指定时默认该field名
url:验证是否有效的url
uuid:基于RFC 4122验证是否是有效的通用唯一识别码
sometimes|rule1|rule2:满足rule1才验证rule2
array.key=>rules:验证array[key]
array.*.key=>rules:验证array所有项的[key]
sometimes(fields,rules1,rules2):指定的fields满足rules1才执行rules2

使用函数定义规则

形如Rule::unique('user,'id')->ignore($id);
利用Rule类提供的函数构建规则,可以追加where文。

定义规则类

执行php artisan make:rule Temp生成继承了Rule的Temp类

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class Temp implements Rule
{
    /**
     * Create a new rule instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        //通过条件
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
    	//返回错误信息
    	//trans('key')获取翻译文件的错误信息
    	//return 'The :attribute must be uppercase.';获取验证器指定信息
    }
}

用法:Validator::make($request->all(),['email.test' => new Temp]);

闭包函数定义规则

$validator = Validator::make($request->all(), [
'title' => [
    'required',
    'max:255',
    function ($attribute, $value, $fail) {
        if ($value === 'foo') {
            $fail('The '.$attribute.' is invalid.');
        }
    },
],
]);

写了大半天,终于完结了。网上类似的介绍很多,这样整理一番,加深了不少理解。来日方长,加油。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-13 17:13:58  更:2021-07-13 17:15:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/30 19:28:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码