【问题标题】:Symfony dynamic router create dynamic route from entitySymfony 动态路由器从实体创建动态路由
【发布时间】:2014-04-15 21:49:48
【问题描述】:

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

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

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

【问题讨论】:

    标签: symfony symfony-cmf


    【解决方案1】:

    您有多种选择:

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

    【讨论】:

      猜你喜欢
      • 2016-02-07
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 2023-04-11
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多