php - Laravel 对多列的唯一验证
问题描述
我在表服务器中有 2 列。
我有列ip
和hostname
.
我有验证:
'data.ip' => ['required', 'unique:servers,ip,'.$this->id]
这仅适用于列ip
。但是如何做到这一点hostname
呢?
我想用列验证 data.ipip
和hostname
. 因为当用户写 ip 时,ip 和 hostname 列中可以重复。
解决方案
您可以使用Rule::unique
来实现您的验证规则
$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
);
编辑:固定消息分配
推荐阅读
- pandas - Pycharm 无法导入 Pandas
- r - 按产品编号对 R 中的数据进行分组
- mysql - MySQL - 查找第一个匹配项或通配符
- python - 根据其他列中的数据创建动态列
- java - Java中自定义对象的空检查
- tags - 仅在未指定标签时运行 ansible 任务
- elasticsearch - 如何在 Elasticsearch 中修复“curl: (23) Failed writing body (4096 != 9142)”
- wcf - 使用 SwaggerWcf 时如何查看我的 Swagger 文档?
- forms - 内联表单输入和提交按钮在屏幕宽度 < 576 像素处未对齐
- python-2.7 - pypi 上 GEOS 的更高版本