TYPO3 v10 routeEnhancer 生成 slug 但无法解决

Posted

技术标签:

【中文标题】TYPO3 v10 routeEnhancer 生成 slug 但无法解决【英文标题】:TYPO3 v10 routeEnhancer generates slug but can't resolve it 【发布时间】:2021-04-14 06:07:33 【问题描述】:

使用 slug 时,我自己的扩展程序中出现了奇怪的行为。

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

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

它会正确生成 slug。 它也按预期保存在数据库中。

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 时,它可以正常工作吗?有谁知道我的蛞蝓可能出了什么问题?

【问题讨论】:

【参考方案1】:

想通了。

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

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

【讨论】:

以上是关于TYPO3 v10 routeEnhancer 生成 slug 但无法解决的主要内容,如果未能解决你的问题,请参考以下文章

TYPO3 v10 没有作曲家自动加载的功能测试

如何在typo3 V10的extbase控制器中重定向到404页面

TYPO3 v10 动作控制器和子文件夹内的模板

从 TYPO3 v9 升级到 v10 后:显示页面不再工作(无法访问受保护的财产)

TYPO3 V10 - EXT:news 自定义类型和持久性映射

TYPO3 v10 - 在 eID_include 中使用上下文 API 获取 feUser 对象