【发布时间】:2016-04-21 13:46:15
【问题描述】:
简而言之:当实体保存的约束失败时,如何设置特定的 http 错误代码,而不是通用的 500?
详情
我正在使用 Symfony 自定义约束 @UniqueEntity (http://symfony.com/doc/current/reference/constraints/UniqueEntity.html) 来断言保存实体时某些数据不会重复。
如果此约束检查导致违规,我会得到一个 500 http 代码,而其他代码可能更合适,例如409 - 冲突 (https://httpstatuses.com/409)。
我似乎找不到任何关于如何覆盖验证响应的文档。
提前感谢您的任何建议。
【问题讨论】:
-
你找到解决 UniqueEntity 约束的方法了吗?
-
@PierrickMartellière 不,但您可以使用这样的实际约束 * @ORM\Table(name="company", uniqueConstraints={ * @ORM\UniqueConstraint(name="code_idx", columns={ “代码”}) * })
-
这不是和@UniqueEntity() 很像吗?
-
@PierrickMartellière 是的,但会引发正确的异常。在下面接受的答案中查看我的最后一条评论。
-
是的,我向您指出了该评论以解释我必须使用不同注释的原因。希望这会有所帮助。
标签: php rest symfony http doctrine