Как избавиться от cHash с помощью усилителей маршрутизации? - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу получить значение параметра get cHash при использовании усилителей маршрутизации с пользовательским расширением.

Документация / журнал изменений TYPO3 предполагает, что это возможно:

Если вы действительноиметь требование никогда не иметь аргумента cHash, убедиться, что у всех заполнителей есть строгие определения того, что может быть результатом сегмента страницы ...

Но что именно делает строгие определения Среднее.

Это моя конфигурация маршрутизации:

routeEnhancers:
  ExecutiveSearchResultList:
    type: Extbase
    extension: executivesearch
    plugin: searchresultlist
    routes:
        - { routePath: '/list/{page}', _controller: 'Search::searchResultList', _arguments: {'page': 'page'} }
    defaultController: 'Search::searchResultList'
    defaults:
      page: '1'
      action: 'searchResultList'
      controller: 'Search'
    requirements:
      page: '\d+'

результат

/path/to/my-page/list/1?cHash=6cd242916809d29b799debe824b37fcd

У меня также есть маршрутизация для tx_news, которая работает нормально, не добавляютсяCashash:

NewsPlugin:
    type: Extbase
    extension: news
    plugin: Pi1
    routes:
      - { routePath: '/list/{page}', _controller: 'News::list', _arguments: {'page': '@widget_0/currentPage'} }
      - { routePath: '/tag/{tag_name}', _controller: 'News::list', _arguments: {'tag_name': 'overwriteDemand/tags'}}
      - { routePath: '/news/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
      - { routePath: '/archive/{year}/{month}', _controller: 'News::archive' }
    defaultController: 'News::list'
    aspects:
      news_title:
        type: PersistedAliasMapper
        tableName: 'tx_news_domain_model_news'
        routeFieldName: 'path_segment'
    defaults:
      page: '0'
    requirements:
      page: '\d+'

1 Ответ

0 голосов
/ 13 февраля 2019

Мой обходной путь был StaticRangeMapper.

Подсказка: 1000 в настоящее время является максимальным в ядре TYPO3.

  NewsPlugin:
    type: Extbase
    limitToPages:
      - 56
    extension: News
    plugin: Pi1
    routes:
      - routePath: '/list/{page}'
        _controller: 'News::list'
        _arguments:
          page: '@widget_0/currentPage'
      - routePath: '/detail/{news_title}'
        _controller: 'News::detail'
        _arguments:
          news_title: news
    defaultController: 'News::list'
    defaults:
      page: '0'
    requirements:
      page: \d+
    aspects:
      page:
        type: StaticRangeMapper
        start: '1'
        end: '1000'
      news_title:
        type: PersistedAliasMapper
        tableName: tx_news_domain_model_news
        routeFieldName: path_segment
...