gpt4 book ai didi

php - Laravel - 验证数组输入请求数据在数据库中的唯一性

转载 作者:行者123 更新时间:2023-12-04 01:46:50 25 4
gpt4 key购买 nike

我在验证输入数组和使用 unique: 验证规则进行检查时遇到问题,我希望有人能进一步帮助我。

从 View 中输入(多个):

<input type="text" class="form-control" name="contactNames[]" required>

我的 dd($request) 示例:

+request: ParameterBag {#44 ▼
#parameters: array:6 [▼
"_token" => "0WBYH4G4aB4XtkQ1Vx29cIvaH7SbYYVcXI6yOuNn"
"name" => "Brand Name"
"groupCheckbox" => array:3 [▶]
"contactNames" => array:2 [▼
0 => "Contact Name 1"
1 => "Contact Name 2"
]
"emails" => array:2 [▼
0 => "test@test.com"
1 => "test2@test.com"
]
"contactNumbers" => array:2 [▼
0 => "07777777777"
1 => "07777777777"
]
]
}

在我的 Controller 中,我的验证:

$request->validate([
'name' => 'required|string|max:255|unique:brands',
'contactNames' => 'required|array',
'contactNames.*' => 'required|max:255|string|distinct|unique:brand_managers',
'emails' => 'required|array',
'emails.*' => 'required|max:255|email|distinct|unique:brand_managers',
'contactNumbers' => 'array',
'contactNumbers.*' => 'numeric',
'groupCheckbox' => 'required|min:1'
]);

我需要检查用户名是否唯一 - 如果我不使用 unique: 验证规则并且数据正确发布到我的数据库,验证工作正常,但我没有不希望多个品牌经理具有相同的详细信息,因此需要验证姓名和电子邮件地址的唯一性

我得到的错误是:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'contactNames.0' in 'where clause' (SQL: select count(*) as aggregate from brand_managers where contactNames.0 = Contact Name 1)

提前感谢您的帮助

最佳答案

我已经找到了解决方案 - 感谢您的帮助 - 对于将来可能遇到同样问题的其他人,我的解决方案是:

$request->validate([
'name' => 'required|string|max:255|unique:brands',
'contactNames' => 'required|array',
'contactNames.*' => ['required', 'max:255', 'string', 'distinct', Rule::unique('brand_managers', 'name')],
'emails' => 'required|array',
'emails.*' => ['required', 'max:255', 'email', 'distinct', Rule::unique('brand_managers', 'email')],
'contactNumbers' => 'array',
'contactNumbers.*' => 'numeric',
'groupCheckbox' => 'required|min:1'
]);

关于php - Laravel - 验证数组输入请求数据在数据库中的唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54926046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com