laravel 8:验证唯一的多个表

Posted

技术标签:

【中文标题】laravel 8:验证唯一的多个表【英文标题】:laravel 8: validation unique multiple tables 【发布时间】:2022-01-04 11:13:08 【问题描述】:

我需要在两个不同的表(公司和单位)中验证标识号。

公司可以注册其拥有的单位,但系统不允许在表格(公司和单位)中重复识别码。

典型的验证如下所示: 商店

unique:companies,cnpj

更新

unique:companies,cnpj,$this->company->id

但是我需要在这个条件下添加第二个表进行验证,所以我尝试如下使用它,但是验证没有发生。

我尝试使用类似的东西:

商店

unique:companies,cnpj|unique:units,cnpj

遇到过这种情况或有知识可以帮助我的人?​​

【问题讨论】:

【参考方案1】:

只需将字段名称更改为识别码并尝试此操作,希望对您有所帮助

'field_name' => [ 'unique:companies,cnpj,'.$this->company->id, 'unique:units,cnpj,'.$this->company->id]

【讨论】:

我在尝试此操作时遇到了注册数据的情况,并且验证没有开始 ' 'cnpj' => [ 'unique:companies,cnpj', 'unique:单位,cnpj'],' 验证前有没有报错信息? 没有错误信息,但我发现了问题。其中一条记录是使用输入掩码记录的,因此即使知道代码存在于数据库中,它也通过了验证。但他的建议对我帮助很大,尤其是在更新部分。

以上是关于laravel 8:验证唯一的多个表的主要内容,如果未能解决你的问题,请参考以下文章

laravel 表单验证 多个字段组合后唯一

如果 id 相同,Laravel 验证唯一性

Laravel 对多个插入的验证

Laravel 5.5 对具有不同列名的单独表的唯一验证规则

基于数据透视表 laravel 的唯一名称规则验证

使用 Laravel 中的验证器检查两个表中两列的唯一性