php Laravel框架 使用validate進行驗證

第一步 創建兩個路由一個get一個post
在這裏插入圖片描述

然後在控制器創建方法
在這裏插入圖片描述
創建視圖界面

在這裏插入圖片描述

裏面的input可以根據自己的需要進行更改

this>validate(this->validate(request,[
‘email’=>‘required|email’, //不能爲空 郵箱格式
‘name’=>‘required|min:2|max:6’, //不能爲空 最小2 最大6
‘age’=>‘required|integer|between:0,100’, // 不能爲空 整數 在0~100之間
]);

前面的email name age 是界面上的name裏的值

後面的是驗證

然後再視圖界面添加

Create Post

@if (count(errors)>0)<divclass="alertalertdanger"><ul>@foreach(errors) > 0) <div class="alert alert-danger"> <ul> @foreach (errors->all() as $error)

  • {{ $error }}

  • @endforeach

    @endif

    讓錯誤信息可以在界面上顯示出來

    such as:

    在這裏插入圖片描述
    最後從控制器添加一句

    return ‘success!’;

    用來反饋成功時跳轉頁面的輸出

    在這裏插入圖片描述
    格式全部輸入正確
    成功
    在這裏插入圖片描述

    附錄:

    所有的驗證規則

    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
    驗證字段數值長度必須介於最小值和最大值之間

    dimensions
    驗證的圖片尺寸必須滿足該規定參數指定的約束條件:

    ‘avatar’ => ‘dimensions:min_width=100,min_height=200’

    有效的約束條件包括:min_width, max_width, min_height, max_height, width, height, ratio

    ratio約束應該是寬度/高度,這可以通過表達式3/2或浮點數1.5來表示:

    ‘avatar’ => ‘dimensions:ratio=3/2’

    distinct
    處理數組時,驗證字段不能包含重複值:

    ‘foo.*.id’ => ‘distinct’

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

    exists:table,column
    驗證字段必須存在於指定數據表

    基本使用:

    ‘state’ => ‘exists:states’
    指定自定義列名:

    ‘state’ => ‘exists:states,abbreviation’
    還可以添加更多查詢條件到where查詢子句:

    ‘email’ => ‘exists:staff,email,account_id,1’

    這些條件還可以包含!:

    ‘email’ => ‘exists:staff,email,role,!admin’

    還可以傳遞NULL或NOT NULL到where子句:

    ‘email’ => ‘exists:staff,email,deleted_at,NULL’
    ‘email’ => ‘exists:staff,email,deleted_at,NOT_NULL’

    有時,你可能需要爲exists查詢指定要使用的數據庫連接,這可以通過在表名前通過.前置數據庫連接來實現:

    ‘email’ => ‘exists:connection.staff,email’

    file
    該驗證字段必須是上傳成功的文件

    filled
    該驗證字段如果存在則不能爲空

    image
    驗證文件必須是圖片(jpeg、png、bmp、gif或者svg)

    in:foo,bar…
    驗證字段值必須在給定的列表中

    in_array:另一個字段
    驗證字段必須在另一個字段中存在

    integer
    驗證字段必須是整型

    ip
    驗證字段必須是IP地址

    JSON
    驗證字段必須是有效的JSON字符串

    max:value
    驗證字段必須小於等於最大值,和字符串、數值、文件字段的size規則一起使用

    mimetypes:text/plain…
    驗證文件必須匹配給定的MIME文件類型之一:

    ‘video’ => ‘mimetypes:video/avi,video/mpeg,video/quicktime’

    爲了判斷上傳文件的MIME類型,框架將會讀取文件內容來猜測MIME類型,這可能會和客戶端MIME類型不同。

    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規則使用方式一致。

    nullable
    驗證字段必須爲null,這在驗證一些可以爲null的原生數據如整型或字符串時很有用。

    not_in:foo,bar,…
    驗證字段值不在給定列表中

    numeric
    驗證字段必須是數值

    present
    驗證字段必須出現在輸入數據中但可以爲空。

    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

    如果你的數據表使用主鍵字段不是id,可以指定第四個輸入參數:

    ‘email’ => ‘unique:users,email_address,’.$user->id.’,user_id’

    添加額外的where子句:

    還可以指定更多條件給where子句:

    ‘email’ => ‘unique:users,email_address,NULL,id,account_id,1’

    在上述規則中,只有account_id爲1記錄纔會進行唯一性檢查。

    url
    驗證字段必須是基於PHP函數filter_var過濾的的有效URL

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