【问题标题】:TYPO3 9 Routing - the parameter gets overwritten by the defaultsTYPO3 9 路由 - 参数被默认值覆盖
【发布时间】:2020-07-28 10:21:31
【问题描述】:

我正在尝试创建一个类似 /maincategory/subcategory/ 的 URL 结构,这很有效,它看起来不错,但是在我的代码中,它会丢失参数“mwWsCategory2”并将其替换为“默认值”下的值。在此示例中,参数“mwWsCategory2”在 extbase-controller 中将为空,但 url 看起来不错且正确。

我尝试删除“默认值”而不是获得正确的参数并且 url 看起来不错,但“mwWsCategory2”是可选的,因此 /maincategory/ 不起作用 - 但我需要该选项。

所以我也尝试保留“默认值”,但删除“方面”下的“类别名称2”。它看起来像 /maincategory/2/ 但我得到了参数。所以它必须是默认值和 PersistedAliasMapper 之间的组合 - 我认为。可能是。我希望比我聪明的人有答案。 :)

routeEnhancers:
  Werbemittelshop:
    type: Extbase
    extension: Mwwerbemittelshop
    plugin: Mwwerbemittelshop
    routes:
      - routePath: '/{categoryname}/{categoryname2}'
        _controller: 'MwWsCategories::category'
        _arguments:
          categoryname: 'mwWsCategory'
          categoryname2: 'mwWsCategory2'
    defaults:
      categoryname2: ''
    defaultController: 'MwWsCategories::category'
    aspects:
      categoryname:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug
      categoryname2:
        type: PersistedAliasMapper
        tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
        routeFieldName: slug

【问题讨论】:

    标签: typo3 typo3-9.x symfony-routing


    【解决方案1】:

    试试这个:

    routeEnhancers:
      Werbemittelshop:
        type: Extbase
        extension: Mwwerbemittelshop
        plugin: Mwwerbemittelshop
        routes:
          - routePath: '/{categoryname}/{categoryname2}'
            _controller: 'MwWsCategories::category'
            _arguments:
              categoryname: mwWsCategory
              categoryname2: mwWsCategory2
        defaults:
          categoryname2: ''
        defaultController: 'MwWsCategories::category'
        aspects:
          mwWsCategory:
            type: PersistedAliasMapper
            tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
            routeFieldName: slug
          mwWsCategory2:
            type: PersistedAliasMapper
            tableName: tx_mwwerbemittelshop_domain_model_mwwscategories
            routeFieldName: slug
    

    在“_arguements”下,您将 routePath 占位符映射到变量/方面。

    类别名称 => mwWsCategory

    但使用占位符名称定义方面。只需使用映射的方面/变量名,因此可以在链中映射定义。

    【讨论】:

    • Jep,这就是正在寻找的答案。我不完全明白,因为我的版本是“相同的”,只是变量名不同,但如果 TYPO3 想要,我可以这样做。非常感谢,我已经将您的答案作为正确答案进行了检查。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    相关资源
    最近更新 更多