TYPO3 9 Routing - параметр перезаписывается по умолчанию - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь создать структуру URL, например / maincategory / subcategory /, и это работает, выглядит хорошо, но с моим кодом он теряет параметр "mwWsCategory2" и заменяет его значением в "значения по умолчанию". В этом примере параметр «mwWsCategory2» будет пустым в контроллере extbase, но URL выглядит красиво и правильно.

Я попытался удалить «по умолчанию», чем получаю правильный параметр, и URL выглядит нормально, но «mwWsCategory2» является необязательным, поэтому / maincategory / не будет работать - но мне нужна эта опция.

Так что я также попытался оставить «по умолчанию», но удалил «categoryname2» в «аспектах». Чем это выглядит как / 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

1 Ответ

0 голосов
/ 20 апреля 2020

Попробуйте это:

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 в переменную / аспект.

categoryname => mwWsCategory

Но определяете аспекты с помощью имя заполнителя. Просто используйте сопоставленные аспекты / имя переменной, чтобы определение могло быть отображено в цепочке.

...