TYPO3 9.5: миграция RealURL - postVarSets - Extbase RouteEnhancer - PullRequest
0 голосов
/ 14 февраля 2020

У меня была следующая конфигурация RealURL (часть):

`'postVarSets' => array(
    '_DEFAULT' => array(
             'level1' => array(
                 array(
                   'GETvar' => 'tx_bitproducts_productview[industryLevel1]',             
                     'lookUpTable' => array(
                         'table' => 'tx_bitproducts_domain_model_industry',
                         'id_field' => 'uid',
                         'alias_field' => 'industriename',
                         'addWhereClause' => ' AND NOT deleted ', 
                         'useUniqueCache' => 1,
                         'useUniqueCache_conf' => array(
                             'strtolower' => 1,
                             'spaceCharacter' => '-'
                         ),
                     )
                 ),
             ),
            'level2' => array(
              array(
                  'GETvar' => 'tx_bitproducts_productview[industryLevel2]',
                  'lookUpTable' => array(
                      'table' => 'tx_bitproducts_domain_model_industrylevel2',
                      'id_field' => 'uid',
                      'alias_field' => 'name',
                      'addWhereClause' => ' AND NOT deleted ', 
                      'useUniqueCache' => 1,
                      'useUniqueCache_conf' => array(
                          'strtolower' => 1,
                          'spaceCharacter' => '-'
                      ),
                  ),
              ),
          ),
...`

, что привело к URL-адресам, таким как

... / level1 / automotive /
и
... / level2 / wheel /

все было обработано одним действием контроллера Extbase. Как может выглядеть Extbase RouteEnhancer для TYPO3 9? Я бы использовал Slug TCA для этих полей.

Спасибо за любые подсказки!

1 Ответ

1 голос
/ 14 февраля 2020

Возможная конфигурация для вашего примера может выглядеть следующим образом:

routeEnhancers:
  BitProducts:
    type: Extbase
    extension: BitProducts (or something like that, depends how called your extension)
    plugin: Productview (or something like that, depends how called your plugin)
    routes:
      - { routePath: '/level1/{level1}', _arguments: {level1: 'industryLevel1'} }
      - { routePath: '/level2/{level2}', _arguments: {level2: 'industryLevel2'} }
    defaultController: 'Controller::action'
    aspects:
      level1:
        type: PersistedAliasMapper
        tableName: 'tx_bitproducts_domain_model_industry'
        routeFieldName: 'slug'
      level2:
        type: PersistedAliasMapper
        tableName: 'tx_bitproducts_domain_model_industrylevel2'
        routeFieldName: 'slug'
...