首页 > 解决方案 > TYPO3:为详细视图正确生成 slug

问题描述

我对 fe_users 的增强扩展有这个配置:

routeEnhancers:
  PhonebookPlugin:
    type: Extbase
    limitToPages:
      - 21
      - 666
    extension: Phonebook
    plugin: tx_phonebook_phonebook
    routes:
      -
        routePath: '/seite/{page}'
        _controller: 'PhonebookItem::list'
        _arguments:
          page: '@widget_0/currentPage'
      -
        routePath: '/detail/{user}'
        _controller: 'PhonebookItem::show'
        _arguments:
          user: 'phonebookItem'
    defaultController: 'PhonebookItem::list'
    defaults:
      page: '0'
    requirements:
      page: '\d+'

但不是像这样https:/domain.tld/telefonbuch/seite/7https:/domain.tld/telefonbuch/detail/123
URL,列表分页链接的 URL 看起来像:
https://domain.tld/telefonbuch?tx_phonebook_phonebook[%40widget_0][currentPage]=7&cHash=0c9036d3c9c4b72d334bb12a8dc2eb74
和详细视图:
https://domain.tld/telefonbuch?tx_phonebook_phonebook%5Baction%5D=show&tx_phonebook_phonebook%5Bcontroller%5D=PhonebookItem&tx_phonebook_phonebook%5Bpage%5D=7&tx_phonebook_phonebook%5BphonebookItem%5D=123&cHash=7cc4e3152cd658e7ee209b05d1bedfab

什么配置丢失或错误?

标签: typo3slugtypo3-9.x

解决方案


首先,除非您没有故意命名您的插件,否则tx_phonebook_phonebook该值是错误的。应该是电话簿。

一般来说,你缺少你的方面。你{variables}没有定义。

aspects:    
   page:
      type: StaticRangeMapper
      start: '1'
      end: '100'
   user:
      type: PersistedPatternMapper
      tableName: fe_users
      routeFieldPattern: '^(?P<username>.+)'
      routeFieldResult: '{username}'

您将不得不使用表格列。您应该注意空格、特殊字符大写字母等。您始终可以在 fe_users 上添加一个 slug 字段并添加您自己的配置。


推荐阅读