问题描述
在使用 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: name
或 routeFieldName: uid
时,它工作得很好吗?有谁知道我的鼻涕虫可能出了什么问题?
解决方法
想通了。
此问题与:https://forge.typo3.org/issues/91397
我存储的对象在我的 pageRoot 之外,因为我有一个多域站点。
因此,您必须在 TCA Slug 配置中设置 'eval' => 'unique'
而不是 'eval' => 'uniqueInSite'
。