找出一个实体是否有关系 - 如何?
Finding out if an entity has relations - How to?
我正在尝试找到一种方法来查找特定实体的关系,比如要删除的对象。
示例设置:
Country
个实体可以有多个 Currencies
。
Currency
实体可以有 Countries
。
- A
Country
可能有一个主要的 Currency
。
因此,设置为:Country <-> (1-n) <-> CountryCurrency <-> (n-1) <-> Currency
。
在上面的示例中,很容易找到要删除的国家/地区是否有任何关联的货币。
但是,想象一下以上内容是以全局方式设置的,并且可用于应用程序中的其他模块。
如果另一个模块,例如 Address
,在单向关系中使用了一个国家(Address
有一个 Country
):我怎么能弄清楚特定的 Country
实体可能会在不尝试的情况下被删除,因此会收到 Foreign Key constraint
错误?
我希望 Doctrine 有内置的东西,但没能在文档中找到它。已经 Google' 有一段时间了,现在也没有成功。始终处于以下趋势:"well, you just $entity->getSomeRelation()->count() > 0
and you know",但我正在寻找可以应用于任何实体的通用 solution/method。
它没有通用的解决方案,因为它始终取决于您的业务模型。
删除具有关系的实体会导致不同的情况:
- 同时删除相关实体
- 将关系设置为空
- 或者根本不允许删除。
因此,您需要根据自己的情况手动进行检查。
我正在尝试找到一种方法来查找特定实体的关系,比如要删除的对象。
示例设置:
Country
个实体可以有多个Currencies
。Currency
实体可以有Countries
。- A
Country
可能有一个主要的Currency
。
因此,设置为:Country <-> (1-n) <-> CountryCurrency <-> (n-1) <-> Currency
。
在上面的示例中,很容易找到要删除的国家/地区是否有任何关联的货币。
但是,想象一下以上内容是以全局方式设置的,并且可用于应用程序中的其他模块。
如果另一个模块,例如 Address
,在单向关系中使用了一个国家(Address
有一个 Country
):我怎么能弄清楚特定的 Country
实体可能会在不尝试的情况下被删除,因此会收到 Foreign Key constraint
错误?
我希望 Doctrine 有内置的东西,但没能在文档中找到它。已经 Google' 有一段时间了,现在也没有成功。始终处于以下趋势:"well, you just $entity->getSomeRelation()->count() > 0
and you know",但我正在寻找可以应用于任何实体的通用 solution/method。
它没有通用的解决方案,因为它始终取决于您的业务模型。
删除具有关系的实体会导致不同的情况:
- 同时删除相关实体
- 将关系设置为空
- 或者根本不允许删除。
因此,您需要根据自己的情况手动进行检查。