【问题标题】:Doctrine2 - relation depending on parameterDoctrine2 - 取决于参数的关系
【发布时间】:2014-03-04 08:44:56
【问题描述】:

我想知道让一个实体与另一个实体具有 1:N 关系但另外取决于参数的最佳方式是什么。

例如,我有productentity 和product_description 实体,这取决于product_idlanguage(2 个字符代码)。另一个示例是manufacturermanufacturer_descriptioncategorycategory_description。有很多 - 你明白了。

我想扩展EntityRepository 类并添加基于例如注释的自动连接。我只是不确定这是否是做我想做的“正确方法”。你能提出更好的解决方案吗?另一个虽然只是在 product 实体中使用方法 getDescription($language) 但对我来说它看起来并不是最佳解决方案,特别是因为我想在 90% 的情况下加载与语言相关的内容以及所有其他信息。在单独的查询中获取该内容只会造成不必要的负载。

感谢您的建议。

【问题讨论】:

    标签: php mysql entity-framework doctrine-orm


    【解决方案1】:

    教义有一个可翻译的扩展。我从未使用过它,但它看起来可能会解决您的用例:

    http://www.doctrine-project.org/2010/11/18/doctrine2-behavioral-extensions.html

    另见

    https://github.com/l3pp4rd/DoctrineExtensions

    【讨论】:

    • 我刚刚检查过,它看起来太复杂了。我的意思是如何获取实体、插入新实体等的方式很奇怪。尤其是它在数据库中存储数据的方式。我会看看细节,但我认为我不会坚持下去。无论如何谢谢你的建议:)
    • 您还可以考虑添加一个学说过滤器来添加一个额外的子句来查询语言doctrine-orm.readthedocs.org/en/latest/reference/filters.html :-)
    • 看起来好多了 - 谢谢,我会看看 :-)
    • 你觉得github.com/KnpLabs/DoctrineBehaviors怎么样?对我来说,它看起来像 Gedmo,但在实现相同功能时更简单(根据代码,它“默认”更有效 [为翻译创建另一个表])。我以前从未听说过。
    • 我觉得不错! KNP Labs 也很有名,我会说试试看 :-)
    猜你喜欢
    • 2011-12-29
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多