Laravel 对多列的唯一验证 [英] Laravel unique validation on multiple columns

查看:35
本文介绍了Laravel 对多列的唯一验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在表服务器中有 2 列.

I have 2 columns in table servers.

我有 iphostname 列.

我有验证:

'data.ip' => ['required', 'unique:servers,ip,'.$this->id]

这仅适用于列 ip.但是如何做到这一点,它会起作用并且对于列 hostname ?

This working only for column ip. But how to do that it would work and for column hostname?

我想用 iphostname 列验证 data.ip.因为在ip和hostname列中可以重复,当用户写ip时.

I want validate data.ip with columns ip and hostname. Because can be duplicates in columns ip and hostname, when user write ip.

推荐答案

您可以使用 Rule::unique 来实现你的验证规则

You can use Rule::unique to achieve your validation rule

$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
);

固定消息分配

这篇关于Laravel 对多列的唯一验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆