Генерация ссылки действия с аргументом noCacheHash = true не работает должным образом - PullRequest
0 голосов
/ 14 марта 2019

Typo3 v9.5.5 , PHP 7.2 , после обновления с 8.7.Кеш очищен, кеш выключен, среда разработки.У моего расширения requireCHashArgumentForActionArguments установлено 0.

Я создаю ссылки на действия, используя синтаксис, как показано ниже:

<f:link.action action="test" noCacheHash="1"></f:link.action>

К сожалению, cHash аргумент всегда присутствует в возвращаемом URL.Это нарушает логику моего расширения, так как я добавляю дополнительные атрибуты к URL в моем коде JavaScript перед вызовом действия через ajax-запрос.

Я ожидал, что аргумент noCacheHash вызовет удаление аргумента cHash из URL.

Я ожидал, что установка requireCHashArgumentForActionArguments предотвратит любые проблемы с проверкой URL, даже если в URL присутствует cHash.

Мне известно о cHashExcludedParameters configнастройки, но Я хотел бы отключить cHash для своего внутреннего номера, как правило, .

Итак, я прошу помощи или объяснения.

Редактировать: если я удаляю аргумент chash вручную из URL и вызываю его, запрос обрабатывается успешно.Таким образом, это означает, что requireCHashArgumentForActionArguments обрабатывается нормально, но только когда chash отсутствует в URL.

Редактировать 2:

В моем случае недопустимый cHashвызвал pageNotFoundOnCHashError вызываемый обработчик.Я установил $GLOBALS['TYPO3_CONF_VARS']['FE']['pageNotFoundOnCHashError'] = false; в AdditionalConfiguration.php, и это «решило» проблему (не элегантное решение).

1 Ответ

1 голос
/ 15 марта 2019

Вам нужно создать свой собственный RouteEnhancer с атрибутами, чтобы удалить cHash в URL.Вот RoutingEnhancersAndAspects несколько хороших примеров для этого.

Ваш config.yaml может выглядеть так:

ProductDetail:
  type: Extbase
  limitToPages: [your_PageId]
  extension: YourExtPlaceholder
  plugin: Pi1
  routes:
   - { routePath: '/{product_title}', _controller: 'Product::detail', _arguments: {'product_title': 'product'} }
  defaultController: 'Product::detail'
  defaults:
     page: '0'
     requirements:
  page: '\d+'
  aspects:
    product_title:
      type: PersistedAliasMapper
      tableName: tx_yourext_domain_model_product
      routeFieldName: slug
...