我有一个简单的表单,它发布到一个控制器,该控制器检查一个项目的名称是否已经被用于特定项目。如果是,则返回错误。这是我为此使用的代码:
'name' => 'required|min:1|unique:versions,name,NULL,id,project_id,'.$project->id,
我遇到的问题是,我不是硬删除,而是使用软删除将它们从数据库中删除,这意味着,例如,’Test’ 只能用作名称一次,即使在它被删除之后被删除。
我怎样才能检查它在未软删除的项目中对于该项目是否是唯一的?
原文由 Samsquanch 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以试试这个:
这将确保
name
在versions
表将是唯一的,如果记录被软删除并且具有相同的名称 name 那么它不会被计算在内,意味着, name 将即使存在同名的软删除记录,也会被接受。要在更新时忽略模型,您应该在
id
name
第一个NULL
。更新: 你也可以使用这样的东西来添加你自己的自定义规则:
你可以像这样使用它: