I have 2 columns in table servers.

我有ip列和hostname列.

I have validation:

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

这只适用于第ip列.但是如何做到这一点呢?对于第hostname列来说,它是可行的吗?

我要验证数据.第ip列和第hostname列的ip.

推荐答案

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

edit: Fixed message assignation

Laravel相关问答推荐

保存很多模型太慢

laravel错误更新使用外键的数据库

运行NPM Prod时出现VUE问题

拉威尔望远镜没有显示请求细节

Laravel 9 中使用 WHERE 子句的列的 SUM

工厂多对多数据透视表属性

Laravel AppServiceProvider 中的代码在通过 DeployHQ 部署时停止 Composer 和构建

Laravel where 子句只返回一个数据库条目

如何在 Laravel Eloquent Collection 数组之前添加一个键值对?

使用 Laravel 计算页面浏览量

自定义 Laravel 关系?

在 Laravel 中下载后如何重定向?

调用未定义的函数 mb_strimwidth

控制器外部的 Laravel 访问请求对象

Laravel 4 上传图片表单

如何将 Facebook PHP SDK 与 Laravel 5.4 集成?

如何处理 php (Laravel api) 和 javascript (AngularJS) 之间的日期时间

Laravel 如何从子域 URL 中删除api前缀

Carbon解析到 ISO8601

如何使 Laravel (Blade) 文本字段只读