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 相关文章推荐
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
『PHP』PHP截断函数mb_substr()使用介绍
Apr 22 PHP
php url路由入门实例
Apr 23 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
php备份数据库类分享
Apr 14 PHP
php编写的抽奖程序中奖概率算法
May 14 PHP
PHP中Enum(枚举)用法实例详解
Dec 07 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
使用ucenter实现多站点同步登录的讲解
Mar 21 PHP
实例说明js脚本语言和php脚本语言的区别
Apr 04 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
js正确获取元素样式详解
2009/08/07 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
Vue三层嵌套路由的示例代码
2018/05/05 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
vue+element实现表单校验功能
2019/05/20 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
微信小程序使用echarts获取数据并生成折线图
2019/10/16 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
python做反被爬保护的方法
2019/07/01 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
python使用OpenCV模块实现图像的融合示例代码
2020/04/10 Python
详解python3 GUI刷屏器(附源码)
2021/02/18 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
党委干部批评与自我批评发言稿
2014/09/28 职场文书
借名购房协议书范本
2014/10/06 职场文书
党员评议自我评价
2015/03/03 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
Nginx HTTP跳转至HTTPS
2022/05/15 Servers
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers