我有相关类别的项目列表(表名是: items
)
--- id ------ category_id ----- name
--- 1 ------- 1 ---------------- aa --> Valid
--- 2 ------- 1 ---------------- bb --> Valid
--- 3 ------- 2 ---------------- aa --> Valid
--- 4 ------- 2 ---------------- bb --> Valid
--- 5 ------- 1 ---------------- aa --> InValid because same name exist in same category
--- 6 ------- 2 ---------------- bb --> InValid because same name exist in same category
对于类别,唯一规则在此处不起作用,它对所有记录验证 name
.
public function validateItems($requestAll){
$id = isset($requestAll['id']) ? ','.$requestAll['id'].',id':'';
$rules = [
'name' => 'required|unique:items,name'.$id,
'category' => 'required'
];
return Validator::make($requestAll, $rules);
}
如何在Laravel中验证具有相关类别的项目以进行插入和更新 .
3 回答
我觉得你需要这样的东西
UPD:用于更新现有行:
如果您的请求中有
category_id
,则可以使用 .创建自定义验证Rule
并将您的验证规则更改为
并在规则的pass方法中,对表进行验证