首页 > 后端开发 > php教程 > 如何在 Laravel 中使用 Rule::unique 实现多列唯一验证?

如何在 Laravel 中使用 Rule::unique 实现多列唯一验证?

Susan Sarandon
发布: 2024-10-29 05:21:02
原创
1062 人浏览过

How to Implement Multi-Column Unique Validation Using Rule::unique in Laravel?

在 Laravel 中利用 Rule::unique 进行多列唯一验证

在你的 Laravel 应用程序中,你有一个名为“servers”的表有两列:“ip”和“主机名”。您希望确保这两列的组合是唯一的,以防止重复条目。虽然您已经为“ip”列实现了验证规则,但您的目标是扩展此逻辑以也包括“主机名”列。

要实现这种多列唯一验证,您可以利用 Laravel 的规则::独特的方法。以下是验证规则的修改版本:

<code class="php">$messages = [
    'data.ip.unique' => 'Given ip and hostname are not unique',
];

Validator::make($data, [
    'data.ip' => [
        'required',
        Rule::unique('servers')
            ->where(function ($query) use ($ip, $hostname) {
                return $query->where('ip', $ip)
                    ->where('hostname', $hostname);
            }),
    ],
], $messages);</code>
登录后复制

说明:

  • Rule::unique('servers') :指定验证规则应应用于“服务器”表。
  • where:用于根据附加条件过滤唯一检查。在本例中,我们按“ip”和“主机名”列进行过滤。
  • $ip** 和 **$hostname:假定这些变量包含您的值
  • $messages:一个可选数组,允许您自定义验证失败时显示的错误消息。

此更新的验证规则将确保“ip”和“主机名”值的组合在“服务器”表中是唯一的,有效防止具有相同 IP 和主机名的重复条目。

以上是如何在 Laravel 中使用 Rule::unique 实现多列唯一验证?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板