在保存实体之前,始终在Symfony中运行特定的函数


Always run a specific function in Symfony before saving Entity

我有一个Company实体,它与Location有一对多的关系。(一个公司可以有多个地点)。

Location有一个布尔值"isPrimaryLocation"。

在保存(新建/编辑)位置到数据库之前,我总是希望检查以下逻辑:

强制执行,如果有一个公司的位置,必须有一个isPrimaryLocation和最大一个位置是isPrimaryLocation。

我的问题是:

  • 这是可以强制与原则注释?
  • 这是我应该做的事情与LifeCycleCallbacks和PrePersist吗?
  • 这是我应该与自定义事件和一个EventListener ?

我会在prePersist事件中添加一个自定义EventListener