Laravel:使用唯一的验证规则更新模型
在 Laravel 中,模型更新期间验证字段对于确保数据完整性至关重要。但是,更新现有记录时,唯一的验证规则可能会导致问题。
请考虑 Repository 类中的以下代码:
1 2 3 4 5 6 7 8 |
|
此代码尝试重新验证模型的字段,包括诸如“用户名”和“电子邮件”。但是,当尝试使用现有唯一值更新记录时,此方法可能会导致验证错误。
要解决此问题,我们需要从验证中排除当前记录,以允许在不违反唯一约束的情况下进行更新。我们可以通过将正在更新的实例的 id 附加到验证器来实现这一点。具体方法如下:
传递实例的 id:
将正在更新的实例的 id 传递给更新方法:
1 2 3 4 5 6 |
|
从验证中排除当前记录:
在验证器中,我们使用 id 参数来检测是否正在更新或创建资源:
更新: 对于唯一验证规则,将 ,{$id} 附加到规则以排除当前记录。例如:
1 |
|
创建: 对于唯一验证规则,请勿包含 id。例如:
1 |
|
通过遵循这些步骤,我们可以优雅地更新 Laravel 模型,同时确保遵守唯一的验证约束。
以上是如何使用唯一的验证规则更新 Laravel 模型而不出现错误?的详细内容。更多信息请关注PHP中文网其他相关文章!