Laravel Validator 實(shí)現(xiàn)兩個(gè)或多個(gè)字段聯(lián)合索引唯一
Laravel的Validation還是蠻好用的,使用Validator可以非常方便的驗(yàn)證表單,它提供了unique唯一性驗(yàn)證,但是默認(rèn)只能驗(yàn)證一個(gè)字段,那遇到兩個(gè)甚至多個(gè)字段的聯(lián)合索引,需要滿足復(fù)雜條件唯一性怎么實(shí)現(xiàn)呢
Validator復(fù)雜唯一性實(shí)現(xiàn)方法
我們可以用自定義 Rule 自定義驗(yàn)證規(guī)則,比如像這樣:
[...] $where = [ 'name' => $request->name, 'phone' => $request->phone ]; $this->validate($request, [ "phone" => [ "required", Rule::unique('table_name') ->where(function ($query) use ($where) { return $query->where($where); }) ], ]); [...]
首先我們把原來的字符串形式,改成數(shù)組形式,在數(shù)組中用 Rule 去自定義新的規(guī)則,很顯然 unique() 方法是對(duì) unique 來自定義的,然后參數(shù)是表的名字,后面再跟一個(gè) where 函數(shù),用到了閉包,匿名函數(shù)查詢同時(shí)滿足兩個(gè)條件的結(jié)果是否存在,返回查詢結(jié)果。
如此,我們便完成了自定義復(fù)雜的唯一性驗(yàn)證。
總結(jié)
以上所述是小編給大家介紹的Laravel Validator 實(shí)現(xiàn)兩個(gè)或多個(gè)字段聯(lián)合索引唯一,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
ThinkPHP3.2框架自帶分頁功能實(shí)現(xiàn)方法示例
這篇文章主要介紹了ThinkPHP3.2框架自帶分頁功能實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了thinkPHP框架自帶分頁功能相關(guān)布局、樣式及后臺(tái)操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-05-05PHP jQuery表單,帶驗(yàn)證具體實(shí)現(xiàn)方法
這篇文章主要介紹了PHP jQuery表單,帶驗(yàn)證具體實(shí)現(xiàn)方法,需要的朋友可以參考下2014-02-02去掉destoon資訊內(nèi)容頁keywords關(guān)鍵字自帶的文章標(biāo)題的方法
這篇文章主要介紹了去掉destoon資訊內(nèi)容頁keywords關(guān)鍵字自帶的文章標(biāo)題的方法,有一定的實(shí)用價(jià)值,需要的朋友可以參考下2014-08-08Smarty最簡單實(shí)現(xiàn)列表奇偶變色的方法
這篇文章主要介紹了Smarty最簡單實(shí)現(xiàn)列表奇偶變色的方法,實(shí)例分析了Smarty屬性與方法的相關(guān)使用技巧,需要的朋友可以參考下2015-07-07