Laravel中unique和exists验证规则的优化详解
发布:smiling 来源: PHP粉丝网 添加日期:2021-09-01 15:12:26 浏览: 评论:0
这篇文章主要给大家介绍了关于Laravel中unique和exists验证规则的优化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
前言
Laravel提供了多种方法来验证应用输入数据。默认情况下,Laravel的控制器基类使用ValidatesRequests trait,该trait提供了便利的方法通过各种功能强大的验证规则来验证输入的HTTP请求。
Laravel中通过ValidatesRequests这个trait来验证requests非常的方便,并且在BaseController类中它被自动的引入了。 exitsts()和unique()这两个规则非常的强大和便利。
它们在使用的过程中需要对数据库中已有的数据进行验证,通常它们会像下面这样来写:
- // exists example
- 'email' => 'exists:staff,account_id,1'
- // unique example
- 'email' => 'unique:users,email_address,$user->id,id,account_id,1'
上面这种写法的语法很难记,我们几乎每次使用时,都不得不去查询一下文档,但是从 Laravel 的5.3.18版本开始这两个验证规则都可以通过一个新的Rule类来简化。
我们现在可以使用下面这样的熟悉的链式语法来达到相同的效果:
- 'email' => [
- 'required',
- Rule::exists('staff')->where(function ($query) {
- $query->where('account_id', 1);
- }),
- ],
- 'email' => [
- 'required',
- Rule::unique('users')->ignore($user->id)->where(function ($query) {
- $query->where('account_id', 1);
- })
- ],
这两个验证规则还都支持下面的链式方法:
where
whereNot
whereNull
whereNotNull
unique验证规则除此之外还支持ignore方法,这样在验证的时候可以忽略特定的数据。
好消息是现在仍然完全支持旧的写法,并且新的写法实际上就是通过formatWheres方法在底层将它转换成了旧的写法:
- protected function formatWheres()
- {
- return collect($this->wheres)->map(function ($where) {
- return $where['column'].','.$where['value'];
- })->implode(',');
- }
Tags: Laravel unique exists
相关文章
- ·Laravel 5.6中的CURD操作(代码示例详解)(2020-01-15)
- ·如何在laravel 5中创建用于XSS防御的中间件? (2020-01-16)
- ·关于Laravel重定向的七种方法详解(2020-01-26)
- ·如何在laravel 5中使用DB事务?(2020-01-31)
- ·Laravel中如何给图片加水印?(2020-04-05)
- ·Laravel框架数据库CURD操作、连贯操作总结(2021-04-10)
- ·Laravel框架路由配置总结、设置技巧大全(2021-04-10)
- ·Laravel框架中扩展函数、扩展自定义类的方法(2021-04-10)
- ·跟我学Laravel之快速入门(2021-04-16)
- ·跟我学Laravel之安装Laravel(2021-04-16)
- ·跟我学Laravel之配置Laravel(2021-04-16)
- ·跟我学Laravel之请求(Request)的生命周期(2021-04-16)
- ·跟我学Laravel之路由(2021-04-16)
- ·跟我学Laravel之请求与输入(2021-04-17)
- ·跟我学Laravel之视图 & Response(2021-04-17)
- ·laravel安装和配置教程(2021-04-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)