标签可以具有相同的名称,当它们的值modul_id
不同时。
目前我使用这段代码:
$tag = Tag::firstOrNew([
'name' => $request->get('name'),
'modul_id' => Modul::where('short', $modul_short)->first()->id
]);
if(!$tag->id) {
$tag->save(); //this is a new entry
} else {
//record was allready there
}
是否可以为&#34制作验证规则;您可以使用相同的名称,但是您需要一个不同的modul_id" ?
答案 0 :(得分:1)
您可以使用Laravel Validator和唯一的验证规则:
$module_id = $request->get('module_id');
$rules = [
'name' => 'unique:tags,name,NULL,id,modul_id,'.$module_id
]
这假设为module_id提供了请求(或者在验证之前以其他方式获取。
该示例表示对列'name'上的表'tags'执行唯一检查,但此检查仅在给定$ module_id匹配的行上运行。
有关详细信息,请查看Laravel Docs - Unique Validation rule