以下是现有可用的验证规则清单与他们的函数名称:
* * * * *
* Accepted
* Active URL
* After (Date)
* Alpha
* Alpha Dash
* Alpha Numeric
* Array
* Before (Date)
* Between
* Boolean
* Confirmed
* Date
* Date Format
* Different
* Digits
* Digits Between
* E-Mail
* Exists (Database)
* Image (File)
* In
* Integer
* IP Address
* Max
* MIME Types
* Min
* Not In
* Numeric
* Regular Expression
* Required
* Required If
* Required With
* Required With All
* Required Without
* Required Without All
* Same
* Size
* String
* Timezone
* Unique (Database)
* URL
## accepted
字段值为 yes, on, 或是 1 时,验证才会通过。这在确认"服务条款"是否同意时很有用。
## active_url
字段值通过 PHP 函数 checkdnsrr 来验证是否为一个有效的网址。
## after:date
验证字段是否是在指定日期之后。这个日期将会使用 PHP strtotime 函数验证。
## alpha
字段仅全数为字母字串时通过验证。
## alpha_dash
字段值仅允许字母、数字、破折号(-)以及底线(_)
## alpha_num
字段值仅允许字母、数字
## array
字段值仅允许为数组
## before:date
验证字段是否是在指定日期之前。这个日期将会使用 PHP strtotime 函数验证。
## between:min,max
字段值需介于指定的 min 和 max 值之间。字串、数值或是文件都是用同样的方式来进行验证。
## confirmed
字段值需与对应的字段值 foo_confirmation 相同。例如,如果验证的字段是 password ,那对应的字段 password_confirmation 就必须存在且与 password 字段相符。
## date
字段值通过 PHP strtotime 函数验证是否为一个合法的日期。
## date_format:format
字段值通过 PHP date_parse_from_format 函数验证符合 format 制定格式的日期是否为合法日期。
## different:field
字段值需与指定的字段 field 值不同。
## digits:value
字段值需为数字且长度需为 value。
## digits_between:min,max
字段值需为数字,且长度需介于 min 与 max 之间。
## boolean
字段必须可以转换成布尔值,可接受的值为 true, false, 1, 0, "1", "0"。
## email
字段值需符合 email 格式。
## exists:table,column
字段值需与存在于数据库 table 中的 column 字段值其一相同。
Exists 规则的基本使用方法
~~~
'state' => 'exists:states'
~~~
指定一个自定义的字段名称
~~~
'state' => 'exists:states,abbreviation'
~~~
您可以指定更多条件且那些条件将会被新增至 "where" 查询里:
~~~
'email' => 'exists:staff,email,account_id,1'
/* 这个验证规则为 email 需存在于 staff 这个数据库表中 email 字段中且 account_id=1 */
~~~
通过NULL搭配"where"的缩写写法去检查数据库的是否为NULL
~~~
'email' => 'exists:staff,email,deleted_at,NULL'
~~~
## image
文件必需为图片(jpeg, png, bmp, gif 或 svg)
## in:foo,bar,...
字段值需符合事先给予的清单的其中一个值
## integer
字段值需为一个整数值
## ip
字段值需符合 IP 位址格式。
## max:value
字段值需小于等于 value。字串、数字和文件则是判断 size 大小。
## mimes:foo,bar,...
文件的 MIME 类需在给定清单中的列表中才能通过验证。
MIME规则基本用法
~~~
'photo' => 'mimes:jpeg,bmp,png'
~~~
## min:value
字段值需大于等于 value。字串、数字和文件则是判断 size 大小。
## not_in:foo,bar,...
字段值不得为给定清单中其一。
## numeric
字段值需为数字。
## regex:pattern
字段值需符合给定的正规表示式。
> 注意: 当使用regex模式时,您必须使用数组来取代"|"作为分隔,尤其是当正规表示式中含有"|"字串。
## required
字段值为必填。
## required_if:field,value
字段值在 field 字段值为 value 时为必填。
## required_with:foo,bar,...
字段值 仅在 任一指定字段有值情况下为必填。
## required_with_all:foo,bar,...
字段值 仅在 所有指定字段皆有值情况下为必填。
## required_without:foo,bar,...
字段值 仅在 任一指定字段没有值情况下为必填。
## required_without_all:foo,bar,...
字段值 仅在 所有指定字段皆没有值情况下为必填。
## same:field
字段值需与指定字段 field 等值。
## size:value
字段值的尺寸需符合给定 value 值。对于字串来说,value 为需符合的字串长度。对于数字来说,value 为需符合的整数值。对于文件来说,value 为需符合的文件大小(单位 kb)。
## timezone
字段值通过 PHP timezone_identifiers_list 函数来验证是否为有效的时区。
## unique:table,column,except,idColumn
字段值在给定的数据库中需为唯一值。如果 column(字段) 选项没有指定,将会使用字段名称。
Occasionally, you may need to set a custom connection for database queries made by the Validator. As seen above, setting unique:users as a validation rule will use the default database connection to query the database. To override this, do the following:
~~~
$verifier = App::make('validation.presence');
$verifier->setConnection('connectionName');
$validator = Validator::make($input, [
'name' => 'required',
'password' => 'required|min:8',
'email' => 'required|email|unique:users',
]);
$validator->setPresenceVerifier($verifier);
~~~
唯一(Unique)规则的基本用法
~~~
'email' => 'unique:users'
~~~
指定一个自定义的字段名称
~~~
'email' => 'unique:users,email_address'
~~~
强制唯一规则忽略指定的 ID
~~~
'email' => 'unique:users,email_address,10'
~~~
增加额外的 Where 条件
您也可以指定更多的条件式到 "where" 查询语句中:
~~~
'email' => 'unique:users,email_address,NULL,id,account_id,1'
~~~
上述规则为只有 account_id 为 1 的数据列会做唯一规则的验证。
## url
字段值需符合 URL 的格式。
> 注意: 此函数会使用 PHP filter_var 方法验证。
- 前言
- 发行说明/L5新特性
- 升级向导
- 升级到 5.0.16
- 从 4.2 升级到 5.0
- 从 4.1 升级到 4.2
- 从 4.1.x 升级到 4.1.29
- 从 4.1.25 升级到 4.1.26
- 从 4.0 升级到 4.1
- 贡献向导
- 环境配置
- 安装
- 配置
- 基本功能
- 路由
- 基本路由
- CSRF 保护
- 方法欺骗
- 路由参数
- 命名路由
- 路由群组
- 路由模型绑定
- 抛出 404 错误
- 中间件
- 建立中间件
- 注册中间件
- 可终止中间件
- 控制器
- 基础控制器
- 控制器中间件
- 隐式控制器
- RESTful 资源控制器
- 请求
- 取得请求实例
- 取得输入数据
- 旧输入数据
- Cookies
- 上传文件
- 其他的请求信息
- 响应
- 基本响应
- 重定向
- 其他响应
- 响应宏
- 系统架构
- 服务提供者
- 基本提供者例子
- 注册提供者
- 缓载提供者
- 服务容器
- 基本用法
- 将接口绑定到实现
- 上下文绑定
- 标签
- 实际应用
- 容器事件
- 参考:理解PHP 依赖注入|Laravel IoC容器
- Contracts
- 为什么用 Contracts
- Contract 参考
- 如何使用 Contracts
- Facades
- 实际用法
- 建立 Facades
- 模拟 Facades
- Facade 类参考
- 请求的生命周期
- 生命周期概要
- 聚焦于服务提供者
- 应用程序结构
- 根目录
- App 目录
- 为应用程序配置命名空间
- 系统服务
- 认证
- 用户认证
- 取得经过认证的用户
- 保护路由
- HTTP 基本认证
- 忘记密码与重设
- 第三方登陆认证
- 交易
- 配置文件
- 订购方案
- 一次性付款
- Single Charges
- 免信用卡试用
- 订购转换
- 订购数量
- 取消订购
- 恢复订购
- 确认订购状态
- 处理失败订阅
- 处理其它 Stripe Webhooks
- 收据
- 缓存
- 配置
- 缓存用法
- 递增与递减
- 缓存标签
- 缓存事件
- 数据库缓存
- 集合
- Command Bus
- 建立命令
- 调用命令
- 命令队列
- 命令管道
- 核心扩展
- 管理者和工厂
- 缓存
- Session
- 认证
- 基于服务容器的扩展
- Laravel Elixir
- 安装与配置
- 使用方式
- Gulp
- Custom Tasks and Extensions
- 加密
- Envoy 任务执行器
- 安装
- 执行任务
- 多服务器
- 并行执行
- 任务宏
- 通知
- 更新 Envoy
- 错误与日志
- 配置
- 错误处理
- HTTP 异常
- 日志
- 事件
- 基本用法
- 事件处理队列
- 事件订阅者
- 文件系统与云存储
- 配置文件
- 基本用法
- 自定义文件系统
- 哈希
- 基本用法
- 辅助方法
- 数组
- 路径
- 路由
- 字符串
- 网址(URL)
- 其他
- 本地化
- 语言文件
- 基本用法
- 复数
- 验证
- 覆写扩展包的语言文件
- 邮件
- 配置
- 基本用法
- 内嵌附件
- 邮件队列
- 邮件与本地端开发
- 扩展包开发
- 视图
- 语言
- 配置文件
- 公共资源
- 发布分类文件
- 路由
- 分页
- 配置
- 使用
- 追加分页链接
- 转换至 JSON
- 队列
- 设置
- 基本用法
- 队列闭包
- 执行一个队列监听
- 常驻队列处理器
- 推送队列
- 已失败的工作
- 会话
- 配置
- 使用 Session
- 暂存数据(Flash Data)
- 数据库 Sessions
- Session 驱动
- 模板
- Blade 模板
- Blade 控制语法结构
- Blade 扩展
- 参考:@section与@yield 介绍
- 单元测试
- 定义并执行测试
- 测试环境
- 从测试调用路由
- 模拟 Facades
- 框架 Assertions
- 辅助方法
- 重置应用程序
- 表单验证
- 基本用法
- 控制器验证
- 表单请求验证
- 使用错误信息
- 错误信息 & 视图
- 可用验证规则
- 条件验证规则
- 自定义错误信息
- 自定义验证规则
- 数据库
- 使用基础
- 配置
- 读取/写入连接
- 执行查找
- 数据库事务处理
- 获取连接
- 日志记录
- 查询构造器
- Selects
- Joins
- 高级 Wheres
- 聚合
- 原生表达式
- 添加
- 更新
- 删除
- Unions
- 悲观锁定 (Pessimistic Locking)
- Eloquent ORM
- 基本用法
- 批量赋值
- 新增,更新,删除
- 软删除
- 时间戳
- 范围查询
- Global Scopes
- 关联
- 关联查询
- 预载入
- 新增关联模型
- 更新上层时间戳
- 使用枢纽表
- 集合
- 获取器和修改器
- 日期转换器
- 属性类型转换
- 模型事件
- 模型观察者
- 模型 URL 生成
- 转换成数组 / JSON
- 结构生成器
- 建立与删除数据表
- 加入字段
- 修改字段
- 修改字段名称
- 移除字段
- 检查是否存在
- 加入索引
- 外键
- 移除索引
- 移除时间戳记和软删除
- 保存引擎
- 迁移和数据填充
- 建立迁移文件
- 执行迁移
- 回滚迁移
- 数据填充
- Redis
- 配置
- 使用方式
- 管道
- 开发包
- Confide 用户身份认证
- Entrust 权限管理
- Shoppingcart 购物车
- Genertators 代码生成工具
- IDE Helper IDE助手
- Artisan 命令行工具
- 概览
- 用法
- 在命令行接口以外的地方调用命令
- 定时调用 Artisan 命令
- 开发
- 建立自定义命令
- 注册自定义命令