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 相关文章推荐
codeigniter教程之多文件上传使用示例
Feb 11 PHP
跟我学Laravel之请求与输入
Oct 15 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
PHP在线调试执行的实现方法(附demo源码)
Apr 28 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
PHP7 新特性详细介绍
Sep 06 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
Yii支持多域名cors原理的实现
Dec 05 PHP
laravel model模型定义实现开启自动管理时间created_at,updated_at
Oct 17 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 21 PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 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实现购物车产品删除功能(2)
2020/07/23 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
PHP实现负载均衡session共享redis缓存操作示例
2018/08/22 PHP
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
深入探究node之Transform
2017/07/20 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
Python类的专用方法实例分析
2015/01/09 Python
python实现中文分词FMM算法实例
2015/07/10 Python
举例详解Python中yield生成器的用法
2015/08/05 Python
python九九乘法表的实例
2017/09/26 Python
python列表返回重复数据的下标
2020/02/10 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
python列表的逆序遍历实现
2020/04/20 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
VLAN和VPN有什么区别?分别实现在OSI的第几层?
2014/12/23 面试题
公司人力资源的自我评价
2014/01/02 职场文书
党员岗位承诺书
2014/03/25 职场文书
重点工程汇报材料
2014/08/27 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
通知格式
2015/04/27 职场文书
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电
使用python求解迷宫问题的三种实现方法
2022/03/17 Python