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 相关文章推荐
不用GD库生成当前时间的PNG格式图象的程序
Oct 09 PHP
PHP原理之异常机制深入分析
Aug 08 PHP
php中的三元运算符使用说明
Jul 03 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
May 10 PHP
PHP中数据类型转换的三种方式
Apr 02 PHP
学习php设计模式 php实现适配器模式
Dec 07 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
PHP中的表达式简述
May 29 PHP
PHP实现财务审核通过后返现金额到客户的功能
Jul 04 PHP
Yii2 queue的队列使用详解
Jul 19 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
WordPress中用于创建以及获取侧边栏的PHP函数讲解
2015/12/29 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
javaScript如何处理从java后台返回的list
2014/04/24 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
2015/12/18 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
JS实现星星评分功能实例代码(两种方法)
2016/06/09 Javascript
Angular2学习教程之TemplateRef和ViewContainerRef详解
2017/05/25 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
Vue3.0结合bootstrap创建多页面应用
2019/05/28 Javascript
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
深入浅析Python中join 和 split详解(推荐)
2016/06/30 Python
python实现词法分析器
2019/01/31 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
scrapy redis配置文件setting参数详解
2020/11/18 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
毕业设计计划书
2014/01/09 职场文书
教师校本培训方案
2014/02/26 职场文书
早会开场白台词大全
2015/06/01 职场文书
python使用glob检索文件的操作
2021/05/20 Python
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python
MySQL中order by的使用详情
2021/11/17 MySQL