纯转载, 原地址:https://blog.csdn.net/qq_35641923/article/details/79174555
-
/**
-
* 获取应用到请求的验证规则
-
*
-
* @return array
-
*/
-
public function rules(){
-
return [
-
'title' => '
required
|unique:posts|max:255
-
',
-
'body' => '
required
-
',
-
];
-
}
下面是有效规则及其函数列表:
- Accepted
- Active URL
- After (Date)
- Alpha
- Alpha Dash
- Alpha Numeric
- Array
- Before (Date)
- Between
- Boolean
- Confirmed
- Date
- Date Format
- Different
- Digits
- Digits Between
- Exists (Database)
- Image (File)
- In
- Integer
- IP Address
- JSON
- Max
- MIME Types (File)
- Min
- Not In
- Numeric
- Regular Expression
- Required
- Required If
- Required Unless
- Required With
- Required With All
- Required Without
- Required Without All
- Same
- Size
- String
- Timezone
- Unique (Database)
- URL
accepted
在验证中该字段的值必须是yes
、on
、1
或true
,这在“同意服务协议”时很有用。
active_url
该字段必须是一个基于PHP函数checkdnsrr
的有效URL
after:date
该字段必须是给定日期后的一个值,日期将会通过PHP函数strtotime
传递:
'start_date' => 'required|date|after:tomorrow'
你可以指定另外一个比较字段而不是使用strtotime验证传递的日期字符串:
'finish_date' => 'required|date|after:start_date'
alpha
该字段必须是字母
alpha_dash
该字段可以包含字母和数字,以及破折号和下划线
alpha_num
该字段必须是字母或数字
array
该字段必须是PHP数组
before:date
验证字段必须是指定日期之前的一个数值,该日期将会传递给PHP strtotime
函数。
between:min,max
验证字段尺寸在给定的最小值和最大值之间,字符串、数值和文件都可以使用该规则
boolean
验证字段必须可以被转化为boolean
,接收true
, false
, 1
,0
, "1"
, 和 "0"
等输入。
confirmed
验证字段必须有一个匹配字段foo_confirmation
,例如,如果验证字段是password
,必须输入一个与之匹配的password_confirmation
字段
date
验证字段必须是一个基于PHP strtotime
函数的有效日期
date_format:format
验证字段必须匹配指定格式,该格式将使用PHP函数date_parse_from_format
进行验证。你应该在验证字段时使用date
或date_format
different:field
验证字段必须是一个和指定字段不同的值
digits:value
验证字段必须是数字且长度为value
指定的值
digits_between:min,max
验证字段数值长度必须介于最小值和最大值之间
验证字段必须是格式化的电子邮件地址
exists:table,column
验证字段必须存在于指定数据表
基本使用:
'state' => 'exists:states'
指定自定义列名:
'state' => 'exists:states,abbreviation'
还可以添加更多查询条件到where
查询子句:
'email' => 'exists: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地址
JSON
验证字段必须是有效的JSON字符串
max:value
验证字段必须小于等于最大值,和字符串、数值、文件字段的size规则一起使用
mimes:foo,bar,…
验证文件的MIMIE类型必须是该规则列出的扩展类型中的一个
MIMIE规则的基本使用:
'photo' => 'mimes:jpeg,bmp,png'
尽管你只需要指定扩展,该规则实际上验证的是通过读取文件内容获取到的文件MIME类型。
完整的MIME类型列表及其相应的扩展可以在这里找到:http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
min:value
验证字段的最小值,和字符串、数值、文件字段的size规则一起使用
not_in:foo,bar,…
验证字段值不在给定列表中
numeric
验证字段必须是数值
regex:pattern
验证字段必须匹配给定正则表达式
注意:使用
regex
模式时,规则必须放在数组中,而不能使用管道分隔符,尤其是正则表达式中使用管道符号时。
required
输入字段值不能为空,以下情况字段值都为空:
- 值为null
- 值是空字符串
- 值是空数组或者空的Coutable对象
- 值是上传文件但路径为空
required_if:anotherfield,value,…
验证字段在另一个字段等于指定值value时是必须的
required_unless:anotherfield,value,…
除了 anotherfield字段等于value,验证字段不能空
required_with:foo,bar,…
验证字段只有在任一其它指定字段存在的话才是必须的
required_with_all:foo,bar,…
验证字段只有在所有指定字段存在的情况下才是必须的
required_without:foo,bar,…
验证字段只有当任一指定字段不存在的情况下才是必须的
required_without_all:foo,bar,…
验证字段只有当所有指定字段不存在的情况下才是必须的
same:field
给定字段和验证字段必须匹配
size:value
验证字段必须有和给定值相value匹配的尺寸,对字符串而言,value
是相应的字符数目;对数值而言,value
是给定整型值;对文件而言,value
是相应的文件字节数
string
验证字段必须是字符串
timezone
验证字符必须是基于PHP函数timezone_identifiers_list
的有效时区标识
unique:table,column,except,idColumn
验证字段在给定数据表上必须是唯一的,如果不指定column
选项,字段名将作为默认column
。
指定自定义列名:
'email' => 'unique:users,email_address'
自定义数据库连接
有时候,你可能需要自定义验证器生成的数据库连接,正如上面所看到的,设置unique:users
作为验证规则将会使用默认数据库连接来查询数据库。要覆盖默认连接,在数据表名后使用”.“指定连接:
'email' => 'unique:connection.users,email_address'
强制一个唯一规则来忽略给定ID:
有时候,你可能希望在唯一检查时忽略给定ID,例如,考虑一个包含用户名、邮箱地址和位置的”更新属性“界面,当然,你将会验证邮箱地址是唯一的,然而,如果用户只改变用户名字段而并没有改变邮箱字段,你不想要因为用户已经拥有该邮箱地址而抛出验证错误,你只想要在用户提供的邮箱已经被别人使用的情况下才抛出验证错误,要告诉唯一规则忽略用户ID,可以传递ID作为第三个参数:
'email' => 'unique:users,email_address,'.$user->id
添加额外的where
子句:
还可以指定更多条件给where
子句:
'email' => 'unique:users,email_address,NULL,id,account_id,1'
url
验证字段必须是基于PHP函数filter_var
过滤的的有效URL