【发布时间】:2019-03-24 23:21:07
【问题描述】:
我有一个带有产品编号文本输入字段的产品模型。在我的 Laravel 应用程序中,我验证该字段对于该特定用户是唯一的。所以两个用户可以有相同的产品编号,但一个用户不能有重复。到目前为止,验证规则在添加新产品时有效:
'product_no' => 'nullable|unique:products,product_no,NULL,id,user_id,' . auth()->user()->id
但是,在编辑同一产品时,验证失败。可能是因为它已经存在了。我不确定如何在验证中排除现有 ID。有什么想法吗?
【问题讨论】:
-
通常,我对新行和现有行使用两种不同的验证器表达式。但我希望有人能做得更好。
-
为什么不使用数组表示法进行验证,在非更新情况下添加唯一键
-
@BagusTesa 如何区分表单方法?
-
@ThomasMoors 示例?
-
@Ronny-AndréBendiksen,在使用Resource Controller 时,您有两种方法,一种用于存储另一种用于更新。 Thomas 方法会以这种方式使用验证规则
$validationRule = ['product_no' => ['nullable', Rule::unique('products', 'product_no')->ignore(auth()->user()->id, 'user_id')]]。我没有尝试过 Thomas 的建议,只是一个粗略的猜测.. 似乎是新功能。
标签: laravel validation laravel-5.7