成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Laravel的unique和exists驗(yàn)證規(guī)則的優(yōu)化

Lin_R / 1385人閱讀

摘要:本文是實(shí)戰(zhàn)任務(wù)管理系統(tǒng)一的擴(kuò)展閱讀歡迎作客我們的學(xué)習(xí)群原文鏈接交流群中通過(guò)這個(gè)來(lái)驗(yàn)證非常的方便,并且在類中它被自動(dòng)的引入了。和這兩個(gè)規(guī)則非常的強(qiáng)大和便利。但是從的版本開始這兩個(gè)驗(yàn)證規(guī)則都可以通過(guò)一個(gè)新的類來(lái)簡(jiǎn)化。

本文是Laravel實(shí)戰(zhàn):任務(wù)管理系統(tǒng)(一)的擴(kuò)展閱讀; 歡迎作客我們的php&Laravel學(xué)習(xí)群:109256050

原文鏈接:http://pilishen.com/posts/Imp...

laravel qq交流群:109256050

Laravel中通過(guò)ValidatesRequests這個(gè)trait來(lái)驗(yàn)證requests非常的方便,并且在BaseController類中它被自動(dòng)的引入了。
exitsts()和unique()這兩個(gè)規(guī)則非常的強(qiáng)大和便利。它們?cè)谑褂玫倪^(guò)程中需要對(duì)數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)進(jìn)行驗(yàn)證,通常它們會(huì)像下面這樣來(lái)寫:

// exists example
"email" => "exists:staff,account_id,1"
// unique example
"email" => "unique:users,email_address,$user->id,id,account_id,1"

上面這種寫法的語(yǔ)法很難記,我們幾乎每次使用時(shí),都不得不去查詢一下文檔。但是從 Laravel 的5.3.18版本開始這兩個(gè)驗(yàn)證規(guī)則都可以通過(guò)一個(gè)新的Rule類來(lái)簡(jiǎn)化。

我們現(xiàn)在可以使用下面這樣的熟悉的鏈?zhǔn)秸Z(yǔ)法來(lái)達(dá)到相同的效果:

"email" => [
    "required",
    Rule::exists("staff")->where(function ($query) {
        $query->where("account_id", 1);
    }),
],
"email" => [
    "required",
    Rule::unique("users")->ignore($user->id)->where(function ($query) {
        $query->where("account_id", 1);
    })
],

這兩個(gè)驗(yàn)證規(guī)則還都支持下面的鏈?zhǔn)椒椒ǎ?/p>

where

whereNot

whereNull

whereNotNull

unique驗(yàn)證規(guī)則除此之外還支持ignore方法,這樣在驗(yàn)證的時(shí)候可以忽略特定的數(shù)據(jù)。

好消息是現(xiàn)在仍然完全支持舊的寫法,并且新的寫法實(shí)際上就是通過(guò)formatWheres方法在底層將它轉(zhuǎn)換成了舊的寫法:

protected function formatWheres()
{
    return collect($this->wheres)->map(function ($where) {
        return $where["column"].",".$where["value"];
    })->implode(",");
}

原文地址鏈接

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/28187.html

相關(guān)文章

  • Laravel 多用戶認(rèn)證系統(tǒng)改造方案

    摘要:本文基于,主要介紹如何針對(duì)多站點(diǎn)分別進(jìn)行用戶認(rèn)證的改造,用意是最大限度利用自帶的認(rèn)證系統(tǒng)。具體方案為清晰起見,項(xiàng)目按照不同站點(diǎn)組織成不同模塊。學(xué)院版用戶認(rèn)證文檔版用戶認(rèn)證文檔更詳細(xì)學(xué)院版驗(yàn)證文檔版驗(yàn)證文檔更詳細(xì)翁航版多用戶認(rèn)證方案 原文發(fā)表于 http://www.jianshu.com/p/d6c112f27661 showImg(https://segmentfault.com/i...

    paulli3 評(píng)論0 收藏0
  • Laravel表單驗(yàn)證

    摘要:驗(yàn)證的字段值必須與參數(shù)字段的值不同。第一次驗(yàn)證失敗后停止運(yùn)行驗(yàn)證規(guī)則。只是停止這個(gè)字段的驗(yàn)證,其它字段不影響。兩次輸入的密碼不一致新密碼與舊密碼不能一致檢查經(jīng)過(guò)身份驗(yàn)證的用戶確定其是否具有更新給定資源的權(quán)限。 修改密碼 showImg(https://segmentfault.com/img/bVbaFNP?w=234&h=229); Confirmed 如果要驗(yàn)證的字段是 passw...

    wapeyang 評(píng)論0 收藏0
  • Laravel 十八個(gè)最佳實(shí)踐

    摘要:本文翻譯改編自的十八個(gè)最佳實(shí)踐這篇文章并不是什么由改編的原則模式等。只是為了讓你注意你在現(xiàn)實(shí)生活的項(xiàng)目中最常忽略的內(nèi)容。單一職責(zé)原則正在幫助你避免重復(fù)。當(dāng)然,這也包括了模板的范圍等。此外,也擁有很棒的內(nèi)置工具,比如軟刪除事件范圍等。 showImg(https://segmentfault.com/img/remote/1460000015166532); 本文翻譯改編自 Larave...

    gitmilk 評(píng)論0 收藏0
  • Laravel 5.7 最佳實(shí)踐開發(fā)技巧分享

    摘要:當(dāng)查詢數(shù)據(jù)時(shí),本地范圍允許我們創(chuàng)建自己的查詢構(gòu)造器鏈?zhǔn)椒椒ā_@樣便會(huì)知道這是一個(gè)本地范圍并且可以在查詢構(gòu)造器中使用。某些查詢構(gòu)造器不可用或者說(shuō)可用但是方法名不同,關(guān)于這些請(qǐng)查閱所有集合的方法。 showImg(https://segmentfault.com/img/remote/1460000017877956?w=800&h=267); Laravel 因可編寫出干凈,可用可調(diào)試的...

    ninefive 評(píng)論0 收藏0
  • Laravel核心解讀--用戶認(rèn)證系統(tǒng)實(shí)現(xiàn)細(xì)節(jié)

    摘要:通過(guò)裝載看守器和用戶提供器裝載看守器和用戶提供器用到的方法比較多,用文字描述不太清楚,我們通過(guò)注解這個(gè)過(guò)程中用到的方法來(lái)看具體的實(shí)現(xiàn)細(xì)節(jié)。 用戶認(rèn)證系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié) 上一節(jié)我們介紹來(lái)Laravel Auth系統(tǒng)的基礎(chǔ)知識(shí),說(shuō)了他的核心組件都有哪些構(gòu)成,這一節(jié)我們會(huì)專注Laravel Auth系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié),主要關(guān)注Auth也就是AuthManager是如何裝載認(rèn)證用的看守器(Guard)...

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

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

0條評(píng)論

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