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() 方法是對 unique 來自定義的,然后參數(shù)是表的名字,后面再跟一個(gè) where 函數(shù),用到了閉包,匿名函數(shù)查詢同時(shí)滿足兩個(gè)條件的結(jié)果是否存在,返回查詢結(jié)果。
如此,我們便完成了自定義復(fù)雜的唯一性驗(yàn)證。
總結(jié)
以上所述是小編給大家介紹的Laravel Validator 實(shí)現(xiàn)兩個(gè)或多個(gè)字段聯(lián)合索引唯一,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
您可能感興趣的文章:- laravel Validator ajax返回錯(cuò)誤信息的方法
- Laravel Validator自定義錯(cuò)誤返回提示消息并在前端展示
- 如何優(yōu)雅的使用 laravel 的 validator驗(yàn)證方法
- Laravel4中的Validator驗(yàn)證擴(kuò)展用法詳解
- laravel 解決Validator使用中出現(xiàn)的問題