国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Laravel的表單驗(yàn)證

wapeyang / 2863人閱讀

摘要:驗(yàn)證的字段值必須與參數(shù)字段的值不同。第一次驗(yàn)證失敗后停止運(yùn)行驗(yàn)證規(guī)則。只是停止這個(gè)字段的驗(yàn)證,其它字段不影響。兩次輸入的密碼不一致新密碼與舊密碼不能一致檢查經(jīng)過身份驗(yàn)證的用戶確定其是否具有更新給定資源的權(quán)限。

修改密碼

Confirmed

如果要驗(yàn)證的字段是 password,輸入中必須存在匹配的 password_confirmation 字段。

Different

驗(yàn)證的字段值必須與參數(shù)字段的值不同。

public function rules() {

    return [
        //...
        "password" => "bail|required|string|between:8,20|confirmed|different:old_password",
        "password_confirmation" => "bail|required|string|between:8,20"
        //...
    ];

}
驗(yàn)證數(shù)組

通常我們的 tags 前端通常會(huì)寫成這個(gè)樣子:

然后在后端可以通過多對(duì)多的關(guān)聯(lián)來實(shí)現(xiàn)這個(gè)添加標(biāo)簽的功能,但是其實(shí)我們仔細(xì)地想:我們添加標(biāo)簽的時(shí)候希望達(dá)到什么樣的效果呢?我覺得有下面兩個(gè)最簡單的:

這個(gè)標(biāo)簽的 tags[] 是不能為空的。

一旦 tags[] 不為空,里面的每一個(gè)元素(標(biāo)簽)應(yīng)該是唯一的。

所以在驗(yàn)證的時(shí)候,我們可以這樣:

Validator::make($request->all(), [    
  "tags" => "required|array",    
  "tags.*" => "required|string|distinct|min:3",
]);

這里需要解釋一下,第一條

"tags" => "required|array", 

是表明這是一個(gè)不能為空的數(shù)組,然后第二條

"tags.*" => "required|string|distinct|min:3", 

就是說:tags 數(shù)組里面每個(gè)元素我希望是 string ,而且是唯一的 (distinct),每個(gè)元素最小的長度為 3。

Bail

第一次驗(yàn)證失敗后停止運(yùn)行驗(yàn)證規(guī)則。
只是停止這個(gè)字段的驗(yàn)證,其它字段不影響。

messages()和attributes()

messages()attributes() 繼承于IlluminateFoundationHttpFormRequest,可以重寫驗(yàn)證字段的含義和提示信息。

public function messages() {
    return [
        "password.confirmed" => "兩次輸入的密碼不一致!",
        "password.different" => "新密碼與舊密碼不能一致!"
    ];
}
authorize()

檢查經(jīng)過身份驗(yàn)證的用戶確定其是否具有更新給定資源的權(quán)限。
如果 authorize() 方法返回 false,則會(huì)自動(dòng)返回一個(gè)包含 403 狀態(tài)碼的 HTTP 響應(yīng),也不會(huì)運(yùn)行控制器的方法。

public function authorize() {
    return true;
}
Unique

第一種寫法:unique:(連接名)表名,表中對(duì)應(yīng)字段,忽略值,表主鍵

當(dāng)字段名和表中字段相等時(shí)可省略

忽略值一般用于修改判斷時(shí)去掉自己

表主鍵為id時(shí)可省略

public function rules() {
    return [
        "name" => "required|string|unique:mysql.sometable,name",
        //...
    ];
}

第二種寫法:使用IlluminateValidationRule中的unique()靜態(tài)方法

public function rules() {
    $id = $this->get("id");

    return [
        "id" => "required|integer",
        "name" => [
            "required",
            "string",
            Rule::unique("mysql.sometable")->ignore($id, "id")
        ],
        //...
    ];
}

還有其他查詢條件時(shí),可以鏈?zhǔn)绞褂?b>where()等方法

public function rules() {
    $stationId = $this->get("station_id");

    return [
        //...
        "car_number" => [
            "required",
            "string",
            Rule::unique("queue")->where(function ($query) use ($stationId) {
                $query->where([
                    ["station_id", $stationId],
                    ["cancel_state", 0]//未取消
                ])->whereDate("create_time", today()->toDateString());
            })//排隊(duì)中不允許重復(fù)
        ],
        //...
    ];
}
Required

有許多規(guī)則,視實(shí)際情況使用:

required_if

required_unless

required_with

required_with_all

required_without

required_without_all

舉個(gè)例子

public function rules() {
    return [
        "tel" => "required_without_all:mobile,email,address",
        "mobile" => "required_without_all:tel,email,address",
        "email" => "required_without_all:tel,mobile",
        "address" => "required_without_all:tel,mobile",
    ];
}

public function messages() {
    return [
        "tel.required_without_all" => "當(dāng)手機(jī)號(hào)碼、Email、地址都為空時(shí),電話號(hào)碼不能為空",
        "mobile.required_without_all" => "當(dāng)電話號(hào)碼、Email、地址都為空時(shí),手機(jī)號(hào)碼不能為空",
        "email.required_without_all" => "當(dāng)電話號(hào)碼、手機(jī)號(hào)碼都為空時(shí),Email和地址不能同時(shí)為空",
        "address.required_without_all" => "當(dāng)電話號(hào)碼、手機(jī)號(hào)碼都為空時(shí),Email和地址不能同時(shí)為空"
    ];
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/30787.html

相關(guān)文章

  • Laravel思維導(dǎo)圖之HTTP請(qǐng)求、響應(yīng)、表單驗(yàn)證

    摘要:今天我來分享中層關(guān)于請(qǐng)求響應(yīng)與表單驗(yàn)證的知識(shí)。手動(dòng)創(chuàng)建驗(yàn)證請(qǐng)求之前的內(nèi)容是直接使用的方法來實(shí)現(xiàn)表單驗(yàn)證。下一步到這篇為止,我完成了入門指南核心概念層的路由中間件控制器請(qǐng)求響應(yīng)表單驗(yàn)證的學(xué)習(xí)和整理。 showImg(https://segmentfault.com/img/remote/1460000010882838); 今天我來分享 Laravel 中 HTTP 層關(guān)于請(qǐng)求、響應(yīng)與表...

    lewif 評(píng)論0 收藏0
  • Laravel 5系列教程七:表單驗(yàn)證 Validation

    摘要:幾乎在每一個(gè)應(yīng)用當(dāng)中都會(huì)有表單,而有表單基本就離不開表單驗(yàn)證。在中,其實(shí)可以說是有兩種方式來進(jìn)行表單驗(yàn)證使用和使用。然后,上面的驗(yàn)證規(guī)則是對(duì)于和兩個(gè)字段,我們需要用戶為其填充內(nèi)容,不能為空。 原文來自:https://laravist.com/article/15 免費(fèi)視頻教程地址 https://laravist.com/series/laravel-5-basic Laravis...

    jindong 評(píng)論0 收藏0
  • 社交系統(tǒng)ThinkSNS+ 如何利用 Laravel 表單驗(yàn)證驗(yàn)證用戶名(我朝獨(dú)有需求,兩個(gè)字母

    摘要:言歸正傳,之所以寫繼篇,其實(shí)是來檢討的,上一次發(fā)表了如何計(jì)算字符顯示長度后,有網(wǎng)友幾經(jīng)測試后告知有問題。簡言之單字節(jié)字符占,多字節(jié)字符占字節(jié)。 什么是ThinkSNS+ ThinkSNS(簡稱TS)始于2008年,一款全平臺(tái)綜合性社交系統(tǒng),為國內(nèi)外大中小企業(yè)和創(chuàng)業(yè)者提供社會(huì)化軟件研發(fā)及技術(shù)解決方案,目前最新版本為ThinkSNS+。 后端框架使用laravel,每周和 laravel ...

    xiaodao 評(píng)論0 收藏0
  • 【日常填坑】之a(chǎn)jax請(qǐng)求laravelapi接口

    摘要:合適和夠用是最完美的追求。比如從頁面去請(qǐng)求的資源。它允許瀏覽器向跨源服務(wù)器,發(fā)出請(qǐng)求,從而克服了只能同源使用的限制。定義在中的路由都是無狀態(tài)的,并且會(huì)應(yīng)用中間件組。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://www.linganm...

    Arno 評(píng)論0 收藏0
  • 【日常填坑】之a(chǎn)jax請(qǐng)求laravelapi接口

    摘要:合適和夠用是最完美的追求。比如從頁面去請(qǐng)求的資源。它允許瀏覽器向跨源服務(wù)器,發(fā)出請(qǐng)求,從而克服了只能同源使用的限制。定義在中的路由都是無狀態(tài)的,并且會(huì)應(yīng)用中間件組。 關(guān)于作者 程序開發(fā)人員,不拘泥于語言與技術(shù),目前主要從事PHP和前端開發(fā),使用Laravel和VueJs,App端使用Apicloud混合式開發(fā)。合適和夠用是最完美的追求。 個(gè)人網(wǎng)站:http://www.linganm...

    neu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<