TYPO3 9.5 - Проблемы с новыми усилителями маршрутизации - PullRequest
0 голосов
/ 21 октября 2018

Я пытаюсь настроить новую речевую маршрутизацию URL для расширения extbase.но абсолютно ничего не происходит со ссылками на детали в веб-интерфейсе.

вот мой код конфигурации сайта yaml (конфигурация NewsPlugin работает, а CardealerPlugin - нет):

routeEnhancers:
  NewsPlugin:
    type: Extbase
    limitToPages: [92,93]
    extension: News
    plugin: Pi1
    routes:
      - { routePath: '/{news_title}', _controller: 'News::detail', _arguments: {'news_title': 'news'} }
    defaultController: 'News::detail'
    aspects:
      news_title:
        type: PersistedAliasMapper
        tableName: 'tx_news_domain_model_news'
        routeFieldName: 'title'
        routeValuePrefix: '/'
  CardealerPlugin:
    type: Extbase
    limitToPages: [84,90]
    extension: Cardealer
    plugin: Pi1
    routes:
      - { routePath: '/{model_description}', _controller: 'Cardealer::show', _arguments: {'model_description': ' car'} }
    defaultController: 'Cardealer::show'
    aspects:
      model_description:
        type: PersistedAliasMapper
        tableName: 'tx_cardealer_domain_model_car'
        routeFieldName: 'model_description'
        routeValuePrefix: '/'

extTables.php

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    'Cardealer',
    'Pi1',
    'Cardealer'
);

Кто-нибудь может помочь, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Убедитесь, что skipDefaultArguments является не активным в вашем расширении. Конфигурация TypoScript:

plugin.tx_myextension {
    features {
        skipDefaultArguments = 1
    }
}
0 голосов
/ 26 октября 2018

Через почти неделю я нашел решение!

a) В записях моего расширения теперь есть новое поле TCA slug, которое генерирует уникальные сегменты URL.

'slug' => [
    'exclude' => true,
    'label' => 'URL Segment',
    'config' => [
        'type' => 'slug',
        'prependSlash' => true,
        'generatorOptions' => [
            'fields' => ['title'],
            'prefixParentPageSlug' => true,
        ],
        'fallbackCharacter' => '-',
        'eval' => 'uniqueInSite',
    ],
],

b) Моя конфигурация YAML:

routeEnhancers:
  CardealerPlugin:
    type: Extbase
    limitToPages: [86]
    extension: Cardealer
    plugin: Pi1
    routes:
      -
        routePath: '/{uid_var}'
        _controller: 'Standard::show'
        _arguments:
          uid_var: car
    defaultController: 'Standard::list'
    aspects:
      uid_var:
        type: PersistedAliasMapper
        tableName: 'tx_cardealer_domain_model_car'
        routeFieldName: 'slug'

c) Жидкостная связь

<f:link.action action="show" controller="Standard" pageUid="{settings.pid.details}" arguments="{car: '{car.uid}'}">
...