首页  >  文章  >  后端开发  >  如何在 Laravel 中验证多列的唯一性?

如何在 Laravel 中验证多列的唯一性?

DDD
DDD原创
2024-11-02 14:01:02204浏览

How to Validate the Uniqueness of Multiple Columns in Laravel?

在 Laravel 中验证多个列的唯一性

在 Laravel 中,唯一验证规则确保指定数据库列中值的唯一性。然而,在处理多个列时,验证它们组合的唯一性并不简单。

考虑到这个问题,我们在服务器表中有两列:ip 和主机名。要验证具有特定 ip 值的新记录与现有主机名值一起不存在于表中,我们可以利用 Rule::unique。

以下代码片段演示了如何实现所需的验证:

<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>

此验证规则检查服务器表中是否已存在具有相同 ip 和主机名组合的记录。如果是,则根据 $messages 中指定的自定义消息返回错误消息。通过定义 where 闭包,我们可以指定唯一性的确切条件,确保同时考虑 ip 和主机名值。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn