Laravel:更新时验证唯一

2023-12-10

我知道这个问题之前已经被问过很多次了,但是没有人解释当你在模型中验证时如何获取 id。

'email' => 'unique:users,email_address,10'

我的验证规则位于模型中,那么如何将记录的 ID 传递给验证规则。

这是我的模型/用户

protected $rules_update = [
    'email_address' => 'required|email|unique:users,email_address,'.$id,
    'first_name' => "required",
    'last_name' => "required",
    'password' => "required|min:6|same:password_confirm",
    'password_confirm' => "required:min:6|same:password",
    'password_current' => "required:min:6"
];

模型/基础模型

    protected $rules = array();

public $errors;

/*
    * @data: array, Data to be validated
    * @rules: string, rule name in model 
*/

public function validate($data, $rules = "rules") {

    $validation  = Validator::make($data, $this->$rules);

    if($validation->passes()) {
        return true;
    }

    $this->errors = $validation->messages();

    return false;
}

只是旁注,这个问题的大多数答案都谈到email_address而在 Laravel 内置的身份验证系统中,电子邮件字段名称只是email。以下是如何验证唯一字段(即有关更新的电子邮件)的示例:

In a 表格请求,你确实喜欢这样:

public function rules()
{
  return [
      'email' => 'required|email|unique:users,email,'.$this->user->id,
  ];
}

或者,如果您直接在控制器中验证数据:

public function update(Request $request, User $user)
{
  $request->validate([
      'email' => 'required|email|unique:users,email,'.$user->id,
  ]);
}

Update: 如果您正在更新登录用户并且没有注入Usermodel 到你的路由中,访问时可能会遇到未定义的属性id on $this->user。在这种情况下,请使用:

public function rules()
    {
      return [
          'email' => 'required|email|unique:users,email,'.$this->user()->id,
      ];
    }

自 Laravel 5.7 以来更优雅的方式是:

public function rules()
{
    return [
        'email' => ['required', 'email', \Illuminate\Validation\Rule::unique('users')->ignore($this->user()->id)]
    ];
}

P.S:我添加了一些其他规则,即必需的和电子邮件,以便让新手清楚地了解这个示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel:更新时验证唯一 的相关文章

  • 角度 4 单击按钮功能未触发

    我正在尝试检查文本输入是否为空或不在角度 4 中 我没有为此使用表单 这只是一个输入字段 当我在下面的按钮中执行 addLocaton 函数时 需要进行检查 我的输入字段
  • 如何使用 PHP 查找字符串中字符的序列模式?

    假设我有随机的文本块 EAMoAAQAABwEBAAAAAAAAAAAAAAABAgMFBgcIBAkBAQABBQEBAAAAAAAAAAAAAAAGAgMEBQcBCBAAAQMDAgMEBQcIBQgGCwEAAQACAxEEBSEG
  • 将策略应用到资源控制器

    我有一个CRUD资源定义通过Route resource User UserController 既然可以生成CRUDGates and Policies 有没有办法应用这样的Gate Policy 以便将相应的Gate Policy应用于
  • Doctrine 装置如何覆盖 purger 类?

    From doctrine fixture bundle the console doctrine fixtures load n命令定义如下 https github com doctrine DoctrineFixturesBundle
  • Laravel Homestead 中 npm 安装错误有解决方案吗?

    Windows 10 家园 虚拟盒6 0 8 流浪者2 2 5 节点 v12 5 0 npm v6 10 1 我想做的就是在新安装的 Laravel 应用程序中执行 npm install 命令 但我不断收到错误 经过两天的谷歌搜索并尝试了
  • 如何对我的自定义验证属性进行单元测试

    我有一个自定义的 asp net mvc 类验证属性 我的问题是如何对其进行单元测试 测试类是否具有该属性是一回事 但这实际上并不能测试其中的逻辑 这就是我想测试的 Serializable EligabilityStudentDebtsA
  • 如何检查 $row['column_name'] 是否返回空 php mysql

    我有一个带有列的表格 id name phone describe 当我从这个表中获取值时 我正在使用 row mysql fetch array query 现在我想检查是否 row describe 返回空值 如何查看php 您可以使用
  • laravel 5.3 新的 Auth::routes()

    最近开始使用laravel 5 3写博客 但是运行后出现一个问题php artisan make auth 当我运行这个时 它会在我的web php 这是其中的代码 Auth routes Route get home HomeContro
  • AFNetworking 上传图片

    我看过一些例子 但我认为我的问题可能出在 PHP 中 我正在尝试使用 AFNetworking 将图像从 iPhone 上传到服务器 这是我的 obj c 代码 IBAction uploadButtonClicked id sender
  • 检查一个类是否是另一个类的子类

    我想在不创建实例的情况下检查一个类是否是另一个类的子类 我有一个类 它接收类名作为参数 作为验证过程的一部分 我想检查它是否属于特定的类系列 以防止安全问题等 有什么好的方法可以做到这一点吗 is subclass of http php
  • 退出 PHP 脚本后终止或停止 MySQL 查询

    我在工作中运行一个统计服务器 由于运行的查询量很大 该服务器有时会变得非常慢 我们的营销团队使用它作为主要统计工具 团队中的某些人有时会在脚本结束之前退出脚本 通过关闭浏览器或选项卡 同时 SQL 查询继续执行 当有人关闭或离开 PHP 脚
  • PHP 的 mb_internal_encoding 实际上是做什么的?

    根据 PHP 网站 http www php net manual en function mb internal encoding php它这样做 coding 是用于 HTTP 输入的字符编码名称 字符编码转换 HTTP输出字符编码 转
  • Oracle Blob 在 PHP 页面中作为 img src

    我有一个网站当前使用文件服务器上的图像 这些图像显示在页面上 用户可以根据需要拖放每个图像 这是使用 jQuery 完成的 图像包含在列表中 每张图片都非常标准 img src network path image png height 8
  • shell_exec 的输出被截断为 100 个字符

    当在 shell 中运行以下命令时 curl F file filename http 192 168 0 1 产生以下输出 Accuracy 0 0 1 classification Accuracy 0 0 1 classificati
  • Laravel 意外错误“类用户包含 3 个抽象方法...”

    在 Laravel 上编写我的身份验证应用程序时 我遇到了一个以前从未见过的错误 我已经集思广益了近一个小时来解决这个问题的原因 但仍然找不到解决方案 Error User 类包含 3 个抽象方法 因此必须声明为抽象方法或实现其余方法 Il
  • 从关系中合并 Laravel 中的集合

    假设我有 3 张桌子 Images Subject Style 关系是多对多 图像 主题 和多对多 图像 样式 现在我想做一些类似的事情 result subjectResult gt images gt merge styleResult
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • Monolog,如何将 PHP 数组记录到控制台?

    我正在使用浏览器处理程序将消息记录到 JS 控制台 require once vendor autoload php use Monolog Logger use Monolog Handler BrowserConsoleHandler
  • 简单的颜色变化

    我正在创建一个用户界面 用户可以在其中更改页面的颜色值 我想要的是获取分配给其背景颜色的值并将其变亮一定程度 我只是想获得一条亮点线 而不必每次都制作新图像 示例 用户将背景颜色设置为 ECECEC 现在我希望某个元素边框变成 F4F4F4
  • preg_match 所有以@开头的单词?

    我对正则表达式不太确定 所以我不得不问你 如何用 PHP 判断字符串中是否包含以 开头的单词 例如我有一个像 This is for codeworxx 这样的字符串 我很抱歉 但我没有任何起点 希望你能帮忙 谢谢 萨沙 好的 谢谢你的结果

随机推荐

  • 10 秒内完成 Postgresql 查询

    有没有办法创建一个将运行十秒的查询 我不需要真实的数据 只是一种长时间运行查询的方法 这样我就可以测试系统在这段时间内的工作情况 我不想创建一个巨大的表并为此进行简单的选择 有什么技巧吗 pg sleep SELECT pg sleep 1
  • 使用 C++ 和 NativeActivity 类获取 Android APK 的名称

    我正在使用 NDK 和 NativeActivity 编写 Android 应用程序 我的应用程序依赖于一些作为资产提供的第三方代码 目前 我正在尝试提取这些资产 同时保持文件夹结构完整 我尝试过使用 AssetManager 但为了保持文
  • 找到点的质心[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我有N分 每个点都有 X 和 Y 坐标 我需要找到该点的质心 X 和 Y 你能给我一个算
  • 停止 TextChanged 上的回发

    我在 aspx 页面中有一个文本框 其中附加了一个 TextChanged 事件 我还在文本框中附加了一个验证器 当文本更改时 将触发验证 但如果出现错误 仍会调用 textchanged 事件 您知道如果验证器触发是否可以停止 textc
  • JQuery .load() 使内容在加载后不可点击

    我有一个页面 其中有一个 div 该 div 中的内容由包含页面填充 并且该包含页面正在调用数据库来检索内容 当用户单击 添加任务 按钮时 将进行 ajax 调用以将内容插入数据库 并使用 load 刷新显示所有任务的 div 删除任务 也
  • 如何使用 JavaScript 合并 JSON 对象?

    如何使用普通 不带 jQuery JavaScript 合并 JSON 对象 要求是 转换自 chartData date 2014 05 1 CAT1 0 1 date 2014 05 1 CAT2 0 2 date 2014 05 1
  • 在 Spring 服务类中使用 ConcurentHashMap 和 AtomicInteger 作为实例变量

    我正在尝试在注入控制器的单例 Spring 服务中实现 ConcurentHashMap 的线程安全使用 Service public MyService final ConcurrentMap
  • 标签添加到文本区域中的选定文本

    如何创建一些 javascript 来执行以下操作 当用户单击 BOLD 按钮时 所选文本将被一个 和一个 包围
  • 参数包必须位于参数列表的末尾...何时以及为什么?

    我不明白为什么如果参数列表绑定到一个类 参数包必须位于参数列表的末尾 而如果参数列表是成员方法声明的一部分 则放松约束 换句话说 这个编译 class C template
  • 如何设置 Laravel 的关联位置?

    我使用以下结构来连接表 with attachments offers publisher public function publisher return this gt belongsTo App User user id id 如何加
  • docker容器中的JHipster应用程序无法在主机网络上访问,无法与非主机网络上的其他容器通信

    我正在尝试在 OS X 开发计算机上的 docker 容器中部署 JHipster 微服务和注册表 我或多或少使用 JHipster 提供的默认 docker compose 配置来部署注册表 version 2 services jhip
  • 详细500错误信息,ASP+IIS 7.5

    IIS 7 5 2008rc2 经典 asp 500 错误消息 由于发生内部服务器错误 该页面无法显示 我需要知道如何配置 IIS 以获得更详细的错误 我尝试将 ASP 配置中的所有调试选项设置为 true 但这没有用 谁能帮我 我遇到了同
  • 更改第 2 列中的日期,其中数字与第 3 列不匹配

    我以前尝试过这个 但需要改变方向 我正在更改数字 但发现数字不同后我需要更改日期 我的文本有 3 列 第二列和第三列相似 但偶尔会有 1 4 位数字不匹配 我添加了一个示例 以便您可以看到我在说什么 我已经添加了 substr 命令 但那是
  • .htaccess 删除网址中的问号

    我有一个网站 其网址中有一个我想要重写的查询字符串 网址是domain com profile php user sven我希望它重定向到domain com profile user sven 我创建了一个 htaccess 文件 其规则
  • 除了 Simple Solver 之外,还有什么软件可以求解给定输入/输出的数字电路?

    All 我在这里找到了一个名为 简单求解器 的东西 http home roadrunner com ssolver syn html 你可以在这里下载 http www softpedia com progDownload Simple
  • 一个项目,多个客户。角2

    好吧 我有一个问题 但我似乎找不到答案 假设我有一个项目 x 它将由多个客户端使用 每个客户端都有自己的功能 可以共享或不共享 以及自己的自定义样式表和 html 布局 因此 按照正常的角度 2 单击模式 我想知道这是否可能 Example
  • 在 R v3.5.1 中,是什么导致打印列表的第一个元素用反引号括起来?

    最近我使用 RStudio v1 1 453 在 Windows 10 上将 R 更新到 3 5 1 我感兴趣的是为什么打印列表的第一个元素现在总是用反引号括起来 即使它是没有非法符号的标准名称 例如 a 如本例所示 R 3 5 1 lis
  • 在包含shared_ptr的地图上使用find_if会增加引用计数

    我正在创建一个程序 其中有一个包含shared ptr 的映射 当我尝试在其中找到一个元素时std find if shared ptr的引用计数增加 例子 include
  • IE 中的 jQuery .clone() .html() Bug

    jQuery 1 6 2 中似乎仍然存在一个错误 该错误与 clone 和 html 存在问题 我创建了一个小提琴 http jsfiddle net Vxyu3 12 这应该有助于解释该错误 如果您依次单击这两个链接 在 Firefox
  • Laravel:更新时验证唯一

    我知道这个问题之前已经被问过很多次了 但是没有人解释当你在模型中验证时如何获取 id email gt unique users email address 10 我的验证规则位于模型中 那么如何将记录的 ID 传递给验证规则 这是我的模型