純轉載, 原地址: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