Laravel在多个列上进行唯一验证 [英] Laravel unique validation on multiple columns
本文介绍了Laravel在多个列上进行唯一验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在表服务器中有2列.
I have 2 columns in table servers.
我有ip
和hostname
列.
我已经验证:
'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
?
我想用列ip
和hostname
验证data.ip.
因为当用户写ip时,可以在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屋!
查看全文