【问题标题】:Doctrine Entity Validation (Setter Method Validation or Event Driven)Doctrine 实体验证(Setter 方法验证或事件驱动)
【发布时间】:2013-07-10 14:31:21
【问题描述】:

今天出现了一个非常有趣的话题,有两种观点。

使用教义实体

  1. 是否应该在调用 setter 方法时进行数据验证? IE。在 setFieldName() 方法中,或
  2. 是否应整体验证实体的有效数据when an event is triggered on an entity

对此是否有正常久经考验的理论和/或观点?

【问题讨论】:

    标签: php oop validation model doctrine-orm


    【解决方案1】:

    我认为没有“正常”/标准的方式来解决这个问题 - 我想这取决于您的需求。我可以告诉你我的观点: 对我来说,数据验证应该尽快在 setter 上完成。这样一来,您就不能拥有一个带有无效数据集的实体,并且当您要坚持时,它会让您头疼。

    试着这样想:假设您有一辆使用汽油的汽车。你去加油站加油。你有两个泵:汽油和汽油。如果没有验证,您可以将任何一种类型的燃料放在那里,直到您打开发动机,什么都不会发生。但是当你这样做的时候,如果你放错了燃料,那就太晚了。呜呜呜!当然实体不会爆炸。;)

    话虽如此,有时不可能对单个 setter 进行验证,因为它可能依赖于另一个属性(尚未设置)。类似于用户实体的 VATID,其中属性 user_type(private|company) 必须可用,以便能够检查和强制公司的 VATID。在这种情况下,你会做一些PrePersist/PreUpdate validation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多