找出一个实体是否有关系 - 如何?

时间:2017-05-15 07:09:16

标签: zend-framework doctrine-orm zend-framework2

我试图找到一种方法来找到特定实体的关系,比如一个被删除的目标。

示例设置:

  • Country实体可以包含多个Currencies
  • Currency实体可以Countries
  • Country可能有Currency

因此,设置为:Country <-> (1-n) <-> CountryCurrency <-> (n-1) <-> Currency

在上面的示例中,如果有针对性删除的国家/地区有任何关联的货币,则很容易找到。

但是,想象一下,上述内容是以全局方式设置的,可用于应用程序中的其他模块。

如果另一个模块Address例如在单向关系中使用了国家/地区(Address只有一个Country):我怎么能弄清楚如果不尝试并因此收到Country错误,则可能无法删除特定的Foreign Key constraint实体?

我希望Doctrine有内置的功能,但是还没有能够在文档中找到它。谷歌现在已经有一段时间没有成功了。始终处于以下趋势:&#34;嗯,您只是$entity->getSomeRelation()->count() > 0并且您知道&#34;,但我正在寻找可以应用于任何实体的通用解决方案/方法。

1 个答案:

答案 0 :(得分:1)

它没有通用的解决方案,因为它总是取决于您的业务模式。

删除具有关系的实体可能会导致不同的情况:

  • 同时删除相关实体
  • 将关系设置为null
  • 或完全不允许删除。

因此,根据您的具体情况,您可以自行检查。