TYPO3 v10 RouteEnhancer 生成 slug 但无法解析它

标签 typo3 extbase typo3-10.x

使用 slug 时,我自己的扩展中有一个奇怪的行为。

我的 TCA 中的 slug 生成器如下所示:

        'slug' => [
        'label' => 'Slug',
        'exclude' => 1,
        'config' => [
            'type' => 'slug',
            'generatorOptions' => [
                'fields' => ['title'],
                'fieldSeparator' => '/',
                'prefixParentPageSlug' => true,
                'replacements' => [
                    '/' => '',
                ],
            ],
            'fallbackCharacter' => '-',
            'eval' => 'uniqueInSite',
            'default' => ''
        ],
    ],

它正确地生成了段头。 它还按预期保留在数据库中。

routeEnhancer 看起来像这样:

ReferenceDetail:
 type: Extbase
 limitToPages:
  - 82
 extension: reference
 plugin: referencedetail
 routes:
  - routePath: '/{ref}'
    _controller: 'Reference::show'
    _arguments:
      ref: reference
 aspects:
  ref:
    type: PersistedAliasMapper
    tableName: tx_reference_domain_model_reference
    routeFieldName: slug

在我的前端,一切看起来都很好。链接看起来像: https://xyz.info/reference/detail/name-reference/

但是当我点击它时,我最终得到了 404。 当我从 routeFieldName: slug 切换到 routeFieldName: namerouteFieldName: uid 时,它工作正常吗?有谁知道我的鼻涕虫可能出了什么问题吗?

最佳答案

想通了。

此问题涉及:https://forge.typo3.org/issues/91397

我存储的对象位于我的 pageRoot 之外,因为我有一个多域站点。 因此,您必须在 TCA Slug 配置中设置 'eval' => 'unique' 而不是 'eval' => 'uniqueInSite'

关于TYPO3 v10 RouteEnhancer 生成 slug 但无法解析它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65630597/

相关文章:

typo3 - 从 BE 注销后,我注册的命名空间停止工作

typo3 - 如何在记录存储页面给编辑用户添加权限?

typo3 - $GLOBALS ['TCA' ] ['tt_content' ] ['types' ][$myCType] ['columnsOverrides' ] ['imagecols' ] ['config' ] ['items' ] 不覆盖默认列表

typo3 - 更改站点中某些页面的站点配置中的语言参数

typo3 - 忽略对 showAction 的验证

php - TYPO3 v10LTS - 错误 - 核心 : Exception handler (WEB): Uncaught TYPO3 Exception: #1573385431: RSS URL could not be fetched | RuntimeException

javascript - TYPO3 7.6 无灯箱扩展工作

TYPO3:禁用特定插件/扩展的缓存

typo3 - 带有多个参数的 Extbase "findBy"

Typo3 v10 中的 Ajax 请求 : Calling controller action via typeNum