【问题标题】:Inject request into Symfony2 Entities将请求注入 Symfony2 实体
【发布时间】:2015-10-24 09:55:03
【问题描述】:

我有一个 Symfony2 项目,今天我被要求将其国际化。

我有几个 MySQL 实体和新翻译的内容,我想将它们放在一个包含以下内容的表中:

ID | language | content_key | content_translation

设置 _locale 后,我希望能够在实体级别传递它,以便模型层自行检索内容(如果该内容是可翻译的内容之一,则再次调用翻译表一)。

我尝试过使用 Translatable Extension,但由于它是一个预先存在的数据库和项目,因此不是一个简单的方法。

如何将请求(或仅传递 _locale)注入到我的实体?

非常感谢, 安德烈亚

【问题讨论】:

    标签: php mysql symfony dependency-injection doctrine


    【解决方案1】:

    我认为您在 Symfony2 中使用 Doctrine 作为 ORM?

    然后看看Doctrine Extensions。此捆绑包为您的实体提供了不同的新行为。 它还有一个translatable behavior,真的很强大。

    在 Symfony2 is not so complicated 中集成学说扩展。

    如果您不能将 Doctrine Extensions 与您的代码/数据库一起使用,我会尝试使用 Doctrine Event Listeners 来开发您自己的可翻译行为。

    【讨论】:

    • 嗨,Patrick,我已经尝试过了,但是 - 因为它是一个预先存在的数据库 - 将它与可翻译行为集成起来并不容易:我要求扩展开发人员支持以有更多信息,他们说我应该做一些自定义的事情,因为扩展没有迁移过程。或者,我可以尝试创建一个全新的项目,使用扩展,然后尝试将其应用到我的项目中。非常感谢 PatrickD
    • 曾经我将 Doctrine Extension 用于预先存在的数据库。这是一个旧的遗留代码库,并用 symfony 完全重写,但这在很大程度上取决于你的用例。我更新了我的答案,提示您开发自己的此功能的另一种可能性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多