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之第十天
Oct 09 PHP
php中判断一个字符串包含另一个字符串的方法
Mar 19 PHP
php && 逻辑与运算符使用说明
Mar 04 PHP
php学习之变量的使用
May 29 PHP
php XPath对XML文件查找及修改实现代码
Jul 27 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
php中异常处理方法小结
Jan 09 PHP
浅谈php+phpStorm+xdebug配置方法
Sep 17 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
详解php用static方法的原因
Sep 12 PHP
php实现JWT验证的实例教程
Nov 26 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
php eval函数用法总结
2012/10/31 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
JavaScript语法着色引擎(demo及打包文件下载)
2007/06/13 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
js实现拉幕效果的广告代码
2015/09/02 Javascript
基于javascript实现动态时钟效果
2020/08/18 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
遍历json获得数据的几种方法小结
2017/01/21 Javascript
jQuery插件HighCharts绘制简单2D折线图效果示例【附demo源码】
2017/03/21 jQuery
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
微信小程序canvas实现签名功能
2021/01/19 Javascript
使用Python编写一个在Linux下实现截图分享的脚本的教程
2015/04/24 Python
Python如何实现动态数组
2019/11/02 Python
python分布式计算dispy的使用详解
2019/12/22 Python
Python3爬虫中Ajax的用法
2020/07/10 Python
举例讲解Python装饰器
2020/12/24 Python
python 如何在测试中使用 Mock
2021/03/01 Python
FOREO官方网站:LUNA露娜洁面仪
2016/11/28 全球购物
三八红旗集体先进事迹材料
2014/05/22 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
销售助理岗位职责
2015/02/11 职场文书
个人政治思想总结
2015/03/05 职场文书
自主招生英文自荐信
2015/03/25 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server
MySQL 角色(role)功能介绍
2021/04/24 MySQL
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis
Golang使用Panic与Recover进行错误捕获
2022/03/22 Golang