【问题标题】:How access to database on routing file with Symfony2?如何使用 Symfony2 访问路由文件上的数据库?
【发布时间】:2011-11-17 09:50:47
【问题描述】:

作为 Symfony2 项目的一部分,我必须管理多语言路由。 为了翻译整个 URL,我必须从 PHP 路由文件中访问 EntityManager 以获得正确的翻译和翻译的 slug。

有人知道怎么做吗?

谢谢你, 安托万。

【问题讨论】:

  • 为什么需要从路由访问数据库? {slug} 不起作用吗?然后你在数据库中搜索 slug ?
  • 我认为,由于性能低下,从 DB 每个请求生成路由配置不是一个好主意。也许您应该预先生成路由文件并每 5-15 分钟更新一次,例如通过 cron?
  • @ManseUK {slug} 确实有效,但我需要完整的翻译路线。示例:/domain/product/{productSlug_en}、/domain/produkt/{productSlug_de}、/domain/produit/{productSlug_fr} 其中“product”、“produkt”和“produit”是存储在数据库中的已翻译密钥。
  • 我认为您需要为静态部分创建路线...

标签: php symfony doctrine-orm


【解决方案1】:

您是否必须为每种语言(ru.site.com、fr.site.com)创建单独的三级域并使用模板中的数据库翻译表生成路由?

【讨论】:

    【解决方案2】:

    我可以建议您查看JMSI18nRoutingBundle。此捆绑包允许您定义本地化路由。这里是从文档中获取的捆绑包概述文本的副本:

    概述

    此捆绑包允许您创建 i18n 路由。要点:

    • 使用翻译组件;翻译网址就像翻译网站上的任何其他文本一样
    • 允许您在每个区域设置中使用不同的主机
    • 不需要您更改开发流程
    • 可以翻译所有路由,无论它们来自第三方包还是您自己的应用程序

    我自己没有使用它,我不是这个捆绑包的开发者,我不知道它是否适用于你的 slug。但我希望这会在某些方面对您有所帮助。

    问候,
    马特

    【讨论】:

      猜你喜欢
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2017-06-28
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多