Laravel Validator 实现两个或多个字段联合索引唯一


Posted in PHP onMay 08, 2019

Laravel的Validation还是蛮好用的,使用Validator可以非常方便的验证表单,它提供了unique唯一性验证,但是默认只能验证一个字段,那遇到两个甚至多个字段的联合索引,需要满足复杂条件唯一性怎么实现呢

Validator复杂唯一性实现方法

我们可以用自定义 Rule 自定义验证规则,比如像这样:

[...]
$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);
            })
    ],
]);
[...]

首先我们把原来的字符串形式,改成数组形式,在数组中用 Rule 去自定义新的规则,很显然 unique() 方法是对 unique 来自定义的,然后参数是表的名字,后面再跟一个 where 函数,用到了闭包,匿名函数查询同时满足两个条件的结果是否存在,返回查询结果。

如此,我们便完成了自定义复杂的唯一性验证。

总结

以上所述是小编给大家介绍的Laravel Validator 实现两个或多个字段联合索引唯一,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

PHP 相关文章推荐
PHP与MySQL开发中页面乱码的产生与解决
Mar 27 PHP
PHP5 操作MySQL数据库基础代码
Sep 29 PHP
PHP手机号码归属地查询代码(API接口/mysql)
Sep 04 PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
PHP网络操作函数汇总
May 18 PHP
php生成数字字母的验证码图片
Jul 14 PHP
php+html5+ajax实现上传图片的方法
May 14 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
php获取当前月与上个月月初及月末时间戳的方法
Dec 05 PHP
Laravel中10个有用的用法小结
May 06 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
Dec 20 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
May 08 #PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 #PHP
Laravel框架路由管理简单示例
May 07 #PHP
Laravel框架实现简单的学生信息管理平台案例
May 07 #PHP
Laravel框架Request、Response及Session操作示例
May 06 #PHP
thinkphp5框架扩展redis类方法示例
May 06 #PHP
PHP5.6.8连接SQL Server 2008 R2数据库常用技巧分析总结
May 06 #PHP
You might like
什么是MVC,好东西啊
2007/05/03 PHP
第六章 php目录与文件操作
2011/12/30 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
解放web程序员的输入验证
2006/10/06 Javascript
JS中style属性
2006/10/11 Javascript
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
JQuery之拖拽插件实现代码
2011/04/14 Javascript
JavaScript创建一个欢迎cookie弹出窗实现代码
2013/03/15 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
解决修复npm安装全局模块权限的问题
2018/05/17 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
优质服务演讲稿
2014/05/14 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
单位病假条范文
2015/08/17 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
Mysql数据库手动及定时备份步骤
2021/11/07 MySQL
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js
Python sklearn分类决策树方法详解
2022/09/23 Python