我有一个 API 发送一组工作人员,有些是需要更新的现有对象,有些是需要创建的新对象,它们都需要进行验证,其中一部分是测试唯一的电子邮件。我正在使用表单请求:
$rules = [
'staff.*.name' => 'required|max:128',
'staff.*.email' => 'required|email|unique:users',
'staff.*.description' => 'max:512',
];
所以问题是,正如我相信您所看到的,电子邮件地址在更新时未通过唯一验证。这是因为如果 ID 与正在验证的项目相同,则忽略电子邮件的机制给我带来了问题。
我看不到一种方法来获取当前正在验证的对象的 ID,以便我可以访问它的 ID。所以我无法添加以下部分:
'staff.*.email' => 'required|email|unique:users,email,id,' . $currentStaff->id
我看不到太多关于这个具体问题的信息,所以我假设我这样做错了树,或者错过了一些非常明显的东西。
有效负载如下:
{
"staff": [
{
"name":"Libbie Turcotte",
"email":"[email protected]",
"updated_at":"2019-12-05 19:28:59",
"created_at":"2019-12-05 19:28:59",
"id":53
},
{
"name":"Person Dave",
"email":"[email protected]",
},
{
"name":"Staff Name",
"email":"[email protected]",
}
]
}