Postgres“uuid 类型的输入语法无效”错误中断了 Laravel 11.x 验证

问题描述 投票:0回答:1

我在 Laravel 应用程序中遇到一个问题,由于 Postgres 出现“uuid 类型的输入语法无效”错误,验证过程停止工作。当我尝试使用 Laravel 的验证规则验证 UUID 字段时,会发生这种情况,并且该字段由于 UUID 格式无效而验证失败。

这是我的验证规则的相关部分:

'id' => ['required', new UUIDValidationRule, 'exists:table,id']

问题似乎是 Laravel 的验证系统在验证 UUID 格式之前尝试检查数据库是否存在(exists:table,id),从而导致 Postgres 错误。

postgresql laravel-validation laravel-11
1个回答
0
投票

通过在 UUIDValidationRule 之后添加 bail 规则,如果 UUID 格式验证失败,Laravel 将停止验证过程。这可以防止在数据库存在检查期间触发“uuid 类型的输入语法无效”错误。

此外,您可以在其他验证场景中使用保释规则,在这些场景中您希望优先考虑某些规则并在第一次失败时停止验证。

我希望这有帮助!如果您还有任何疑问或问题,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.