Symfony 验证。 API 资源验证自定义逻辑

Symfony validation. API Resource validation custom logic

我想写基础验证器。可以捕获实体的“预验证”事件吗? 如果可能,我将使用当前实体动态约束调用 ValidatorInterface。 这是我自己研究的,我只研究:)

symfony 中没有这样的事件'pre validation',但是您可以随时使用 EventDispatcher 调度您自己的事件,并在 EventListener 或 EventSubscriber 中处理它们。

但我想你根本不会 运行 实体验证器。实体是一个领域术语,尽量避免其中的基础设施代码。输入验证是此类“基础设施”代码的一个示例。考虑创建另一个 class,比如 InputDto,它将直接从请求映射,然后使用验证器进行验证(可能在几个阶段:你可以 运行 一个验证组,而不是转换一些值,而不是 运行 下一个验证组等等)。然后通过将有效数据从 DTO 传递到实体构造函数来创建实体。

这种方法将保证如果实体被创建,它处于有效状态。