Skip to content

RuleInterface — 校验规则契约接口

  • 文件位置: kernel/Foundation/Validation/RuleInterface.php
  • 命名空间: kernel\Foundation\Validation
  • 类型: 接口
  • 默认实现: RuleBuilder

定义所有校验规则方法的完整契约,RuleBuilder 为默认实现。上层通过 Rule 门面类调用,实现与具体构建器的解耦。

方法速查表

方法作用
required($message)校验值是否为空或 null
type($value, $message)校验数据类型
equal($value, $message)校验是否等于指定值(===
includes($value, $message)校验字符串包含子串 / 数组包含元素
hasKeys($value, $message)校验数组是否存在指定键
min($value, $message)校验数值 >= 指定值
max($value, $message)校验数值 <= 指定值
range($min, $max, $message)校验数值在 [min, max]
minLength($value, $message)校验长度 >= 指定值
maxLength($value, $message)校验长度 <= 指定值
length($min, $max, $message)校验长度在 [min, max]
pattern($pattern, $message)正则表达式校验
custom($callback)自定义校验
useRule($validateRule)复用已有的校验规则实例
email($message)校验有效邮箱地址
url($message)校验有效 URL
ip($message)校验有效 IP(IPv4/IPv6)
date($message)校验有效日期字符串
dateFormat($format, $message)校验指定日期格式
in($values, $message)校验值在值列表中
notIn($values, $message)校验值不在值列表中
confirmed($message)校验值与 字段名_confirmation 一致
same($field, $message)校验值与另一字段相同
different($field, $message)校验值与另一字段不同
nullable($message)允许值为 null
present($message)允许值为空字符串
prohibited($message)校验字段不能存在于输入数据中
requiredIf($anotherField, $values, $message)另一字段等于指定值时必填
requiredUnless($anotherField, $values, $message)除非另一字段等于指定值否则必填

方法

required($message = "") — 校验值是否为空或为 null

参数

参数类型默认说明
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

type($value, $message = "") — 校验数据类型

校验目标值的数据类型是否等于指定数据类型,或是否存在于指定的数据类型数组中。int 自动转为 integerbool 自动转为 boolean

参数

参数类型默认说明
$valuestring|string[]数据类型或数据类型数组
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

equal($value, $message = "") — 校验是否等于指定值

使用严格比较 ===

参数

参数类型默认说明
$valuemixed指定的对比值
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

includes($value, $message = "") — 校验是否包含指定值

校验字符串是否包含子串,或数组是否包含指定元素。

参数

参数类型默认说明
$valuestring|array任意基本类型值或任意基本类型数组
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

hasKeys($value, $message = "") — 校验数组是否存在指定键

参数

参数类型默认说明
$valuestring|string[]键名或键名数组
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

min($value, $message = "") — 校验数值是否大于等于指定值

参数

参数类型默认说明
$valueint指定的最小值
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

max($value, $message = "") — 校验数值是否小于等于指定值

参数

参数类型默认说明
$valueint指定的最大值
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

range($min, $max, $message = "") — 校验数值是否在 [min, max] 范围内

参数

参数类型默认说明
$minint最小值
$maxint最大值
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

minLength($value, $message = "") — 校验长度是否大于等于指定值

参数

参数类型默认说明
$valueint指定的最小长度
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

maxLength($value, $message = "") — 校验长度是否小于等于指定值

参数

参数类型默认说明
$valueint指定的最大长度
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

length($min, $max, $message = "") — 校验长度是否在 [min, max] 范围内

参数

参数类型默认说明
$minint最小长度
$maxint最大长度
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

pattern($pattern, $message = "") — 正则表达式校验

参数

参数类型默认说明
$patternstring正则表达式
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

custom($callback) — 自定义校验

参数

参数类型默认说明
$callback\Closure|callable校验函数,返回值必须是继承自 Response 的实例

返回值

  • $this:支持链式调用。

useRule(RuleInterface $validateRule) — 复用已有的校验规则实例

参数

参数类型默认说明
$validateRuleRuleInterface校验规则实例

返回值

  • $this:支持链式调用。

email($message = "") — 校验值是否为有效邮箱地址

参数

参数类型默认说明
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

url($message = "") — 校验值是否为有效 URL 地址

参数

参数类型默认说明
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

ip($message = "") — 校验值是否为有效 IP 地址

支持 IPv4 和 IPv6。

参数

参数类型默认说明
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

date($message = "") — 校验值是否为有效日期字符串

参数

参数类型默认说明
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

dateFormat($format, $message = "") — 校验值是否符合指定日期格式

参数

参数类型默认说明
$formatstring日期格式,如 Y-m-dY-m-d H:i:s
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

in($values, $message = "") — 校验值是否在给定值列表中

可变参数:支持 in('a', 'b', 'c')in(['a', 'b', 'c'], 'message')

参数

参数类型默认说明
$valuesarray|string值列表或数组+消息
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

notIn($values, $message = "") — 校验值是否不在给定值列表中

可变参数:支持 notIn('a', 'b', 'c')notIn(['a', 'b', 'c'], 'message')

参数

参数类型默认说明
$valuesarray|string值列表或数组+消息
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

confirmed($message = "") — 校验值是否与确认字段一致

校验字段的值与 字段名_confirmation 的值是否一致,常用于密码确认。

参数

参数类型默认说明
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

same($field, $message = "") — 校验值与另一字段相同

参数

参数类型默认说明
$fieldstring另一个字段名
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

different($field, $message = "") — 校验值与另一字段不同

参数

参数类型默认说明
$fieldstring另一个字段名
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

nullable($message = "") — 允许字段值为 null

值为 null 时跳过后续所有校验规则,直接通过。本规则不产生错误,$message 仅用于兼容接口。

参数

参数类型默认说明
$messagestring""校验失败时的报错信息(兼容接口,实际不使用)

返回值

  • $this:支持链式调用。

present($message = "") — 允许字段值为空字符串

值为空字符串时跳过后续所有校验规则,直接通过。本规则不产生错误,$message 仅用于兼容接口。

参数

参数类型默认说明
$messagestring""校验失败时的报错信息(兼容接口,实际不使用)

返回值

  • $this:支持链式调用。

prohibited($message = "") — 校验字段不能存在于输入数据中

参数

参数类型默认说明
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

requiredIf($anotherField, $values, $message = "") — 条件必填

当另一个字段的值等于指定值时,此字段为必填。可变参数:支持 requiredIf('status', ['active', 'pending'], 'message')requiredIf('status', 'active', 'pending')

参数

参数类型默认说明
$anotherFieldstring另一个字段名
$valuesarray|string指定值或值列表
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。

requiredUnless($anotherField, $values, $message = "") — 条件必填(除非)

除非另一个字段的值等于指定值,否则此字段为必填。可变参数:支持 requiredUnless('status', ['draft'], 'message')requiredUnless('status', 'draft')

参数

参数类型默认说明
$anotherFieldstring另一个字段名
$valuesarray|string指定值或值列表
$messagestring""校验失败时的报错信息

返回值

  • $this:支持链式调用。