• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Laravel中unique和exists验证规则优化步骤详解

php 搞代码 4年前 (2022-01-22) 13次浏览 已收录 0个评论

这次给大家带来Laravel中unique和exists验证规则优化步骤详解,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($<i style="color:transparent">本文来源gaodai$ma#com搞$$代**码)网8</i><strong>搞代gaodaima码</strong>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(',');}

相信看了本文案例你已经掌握了方法,更多精彩请关注搞代码其它相关文章!

推荐阅读:

PHP双向链表使用详解

PHP运用foreach转换数组步骤详解

以上就是Laravel中unique和exists验证规则优化步骤详解的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Laravel中unique和exists验证规则优化步骤详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址