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: name
或routeFieldName: uid
时,它可以正常工作吗?有谁知道我的蛞蝓可能出了什么问题?
【问题讨论】:
【参考方案1】:想通了。
此问题与:https://forge.typo3.org/issues/91397
我存储的对象在我的 pageRoot 之外,因为我有一个多域站点。
因此,您必须在 TCA Slug 配置中设置 'eval' => 'unique'
而不是 'eval' => 'uniqueInSite'
。
【讨论】:
以上是关于TYPO3 v10 routeEnhancer 生成 slug 但无法解决的主要内容,如果未能解决你的问题,请参考以下文章
如何在typo3 V10的extbase控制器中重定向到404页面
从 TYPO3 v9 升级到 v10 后:显示页面不再工作(无法访问受保护的财产)