0

我一直在看 symfony CMF,但我不知道它是否能够解决我的问题。

我想构建一个商店捆绑包,其中每种语言都可以配置特定产品的 URL,即 /product/{productId}/[productName] 用于 EN 和 /[productName]-{productId}.html 用于 DK - 两者都领先到同一个产品。([productName] 只是表示内容可以在这里,id 是真正的参数)

我的问题是我无法确定是否可以将此类路由添加到默认动态路由器,或者我是否必须自己实现 RouteProviderInterface,以及我如何使 {{ path(???) }} 生成基于选择的语言和产品实体作为输入。

4

1 回答 1

2

你有几个选择:

  • 您可以将 DynamicRouter 与指向您产品的 PHPCR 或 ORM 路由一起使用。每个文档可以有任意多的路由。它们可以命名为任何名称,因此要强制执行您的命名模式,您需要一些编码。如果您的产品可以提供引用它们的路由,DynamicRouter 甚至可以直接从产品生成 URL。缺点是您需要为每个产品存储一个数据库条目。
  • 您可以编写自己的 RouteProvider 来从您的产品中生成路由对象。RouteProviderInterface 只有几个方法,我希望在你的情况下它应该很容易实现。
  • 你调查过 Sylius 吗?https://github.com/Sylius/Sylius/pull/255尝试将 cmf 路由组件添加到 sylius。也许您可以解决这个问题,或者至少将其用作灵感。
  • 您还可以实现自己的 RouterInterface 并使用 ChainRouter 将其挂接到路由过程中,但这可能是矫枉过正。
于 2014-04-16T12:05:45.690 回答