laravel request中rules規則大全

純轉載, 原地址:https://blog.csdn.net/qq_35641923/article/details/79174555

  1. /**

  2. * 獲取應用到請求的驗證規則

  3. *

  4. * @return array

  5. */

  6. public function rules(){

  7. return [

  8. 'title' => '

required|unique:posts|max:255

  1. ',

  2. 'body' => '

required

  1. ',

  2. ];

  3. }

 

 

下面是有效規則及其函數列表:

accepted

在驗證中該字段的值必須是yeson1true,這在“同意服務協議”時很有用。

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,接收truefalse1,0"1", 和 "0"等輸入。

confirmed

驗證字段必須有一個匹配字段foo_confirmation,例如,如果驗證字段是password,必須輸入一個與之匹配的password_confirmation字段

date

驗證字段必須是一個基於PHP strtotime函數的有效日期

date_format:format

驗證字段必須匹配指定格式,該格式將使用PHP函數date_parse_from_format進行驗證。你應該在驗證字段時使用datedate_format

different:field

驗證字段必須是一個和指定字段不同的值

digits:value

驗證字段必須是數字且長度爲value指定的值

digits_between:min,max

驗證字段數值長度必須介於最小值和最大值之間

email

驗證字段必須是格式化的電子郵件地址

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章