RouteEnhancer с аспектами выдает InvalidParameterException - PullRequest
0 голосов
/ 01 марта 2019

Я использовал дословный пример из Changelog :

Единственное, что я изменил, было limitToPages.

routeEnhancers:
  NewsPlugin:
    type: Extbase
    limitToPages: [82]
    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: 'path_segment'
        routeValuePrefix: '/'

В 9.5.4 выдается исключение:

Symfony\Component\Routing\Exception\InvalidParameterException
Parameter "tx_news_pi1__news" for route "tx_news_pi1_0" must match "[^/]++" ("" given) to generate a corresponding URL.

in /var/www/example/htdocs/typo3_src-9.5.4/vendor/symfony/routing/Generator/UrlGenerator.php line 155


at Symfony\Component\Routing\Generator\UrlGenerator->doGenerate(array('tx_news_pi1__news' => 0), array('_controller' => 'News::detail'), array(), array(array('variable', '/', '[^/]++', 'tx_news_pi1__news', true), array('text', '/aktuelles/artikel')), array('tx_news_pi1__news' => ''), 'tx_news_pi1_0', 1, array(), array())
in /var/www/example/htdocs/typo3_src-9.5.4/vendor/symfony/routing/Generator/UrlGenerator.php line 128

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

NewsDetail:
  type: Extbase
  limitToPages: [82]
  extension: News
  plugin: Pi1
  routes:
    - { routePath: '/{news_id}', _controller: 'News::detail', _arguments: {'news_id': 'news'} }

Не уверен, где искать и как лучше устранить неполадки.Я надеялся, что кто-то столкнулся с подобной проблемой или мог указать мне правильное направление.

1 Ответ

0 голосов
/ 04 марта 2019

Проверьте, не является ли пустой путь_сегментом здесь проблема:

select count(*) from tx_news_domain_model_news where path_segment='';

Исправлено

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

  • Запустить мастер обновления: «Поле слагов обновлений« путь_сегмент »EXT: записи новостей» (возможно, вам придется сначала пометить его как «отмененный» в мастере обновлений (BE: Upgrade> Upgrade Wizard> Run Upgrade)Мастер)
  • Или установить tx_news_domain_model_news.path_segment вручную
...