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 相关文章推荐
一个简单的自动发送邮件系统(三)
Oct 09 PHP
PHP的变量总结 新手推荐
Apr 18 PHP
PHP面向对象概念
Nov 06 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
WordPress开发中用于标题显示的相关函数使用解析
Jan 07 PHP
PHP编程实现csv文件导入mysql数据库的方法
Apr 29 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
Jan 23 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
星际争霸任务指南——神族
2020/03/04 星际争霸
php中通过curl smtp发送邮件
2012/06/05 PHP
汇总PHPmailer群发Gmail的常见问题
2016/02/24 PHP
php中实现字符串翻转的方法
2017/02/22 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
DWR实现模拟Google搜索效果实现原理及代码
2013/01/30 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
Python中join函数简单代码示例
2018/01/09 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
python dict 相同key 合并value的实例
2019/01/21 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
2020/03/31 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
班会关于环保演讲稿
2013/12/29 职场文书
工厂总经理岗位职责
2014/02/07 职场文书
手工社团活动方案
2014/02/17 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
2014年文员工作总结
2014/11/18 职场文书
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python