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)文章
顯示程序執(zhí)行時(shí)間php函數(shù)代碼
這篇文章介紹了顯示程序執(zhí)行時(shí)間php函數(shù)代碼,有需要的朋友可以參考一下2013-08-08
laravel 5 實(shí)現(xiàn)模板主題功能(續(xù))
前面一篇文章,我們簡單討論了laravel模板主題功能,本文我們繼續(xù)探討laravel模板主題功能的實(shí)現(xiàn),本次實(shí)現(xiàn)比較重,有興趣慢慢看吧。2015-03-03
Laravel5.1 框架Middleware中間件基本用法實(shí)例分析
這篇文章主要介紹了Laravel5.1 框架Middleware中間件基本用法,結(jié)合實(shí)例形式分析了laravel5.1框架Middleware中間件功能、創(chuàng)建、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-01-01
Thinkphp+smarty+uploadify實(shí)現(xiàn)無刷新上傳
這篇文章主要介紹了Thinkphp+smarty+uploadify實(shí)現(xiàn)無刷新上傳的方法,實(shí)例分析了php模板與js上傳插件結(jié)合實(shí)現(xiàn)無刷新上傳的相關(guān)技巧,需要的朋友可以參考下2015-07-07
PHP微信公眾號(hào)自動(dòng)發(fā)送紅包API
微信發(fā)紅包已經(jīng)成為當(dāng)今比較流行的祝福形式,大家都學(xué)著使用微信發(fā)紅包,這篇文章主要為大家詳細(xì)介紹了PHP微信公眾號(hào)自動(dòng)發(fā)送紅包API,感興趣的小伙伴們可以參考一下2016-06-06

