TYPO3 Aspect PersistedAliasMapper 无法正常工作
TYPO3 Aspect PersistedAliasMapper not working as wanted
我是 运行 TYPO3 10.4.6,我写的插件有问题。我正在使用前端插件向我的一个数据库实体显示详细信息。我使用 'slug' 类型的 TCA 字段在数据库中存储自定义 slug,然后在我的 config.yaml 中为我的站点定义以下内容:
routeEnhancers:
PageTypeSuffix:
type: PageType
default: '/'
index: ''
map:
'/': 0
Hersteller:
type: Extbase
limitToPages: [45]
extension: Myext
plugin: Hersteller
routes:
- { routePath: '/{hersteller}', _controller: 'Hersteller::show', _arguments: {'hersteller': 'hersteller'} }
defaultController: 'Hersteller::show'
aspects:
hersteller:
type: PersistedAliasMapper
tableName: 'tx_myext_domain_model_hersteller'
routeFieldName: 'slug'
routeValuePrefix: '/'
我的 URL 是按照我的需要生成的:https://example.com/pluginpage/slug
问题是当我访问这个 link 时,TYPO3 响应 404 Not Found 错误:
找不到页面
该页面不存在或无法访问。原因:请求的页面不存在
我错过了什么吗?似乎 TYPO3 无法将 slug 映射到数据库实体。这是 TCA slug 字段的定义:
'slug' => [
'label' => 'Slug',
'config' => [
'type' => 'slug',
'generatorOptions' => [
'fields' => ['name'],
'fallbackCharacter' => '-',
'eval' => 'unique'
]
]
],
我做错了什么?有没有办法调试这个?我不知道去哪里看更深入。
提前致谢!
正如 Thomas 已经提到的,您应该删除 routeValuePrefix: '/'
这应该可以解决问题。
我是 运行 TYPO3 10.4.6,我写的插件有问题。我正在使用前端插件向我的一个数据库实体显示详细信息。我使用 'slug' 类型的 TCA 字段在数据库中存储自定义 slug,然后在我的 config.yaml 中为我的站点定义以下内容:
routeEnhancers:
PageTypeSuffix:
type: PageType
default: '/'
index: ''
map:
'/': 0
Hersteller:
type: Extbase
limitToPages: [45]
extension: Myext
plugin: Hersteller
routes:
- { routePath: '/{hersteller}', _controller: 'Hersteller::show', _arguments: {'hersteller': 'hersteller'} }
defaultController: 'Hersteller::show'
aspects:
hersteller:
type: PersistedAliasMapper
tableName: 'tx_myext_domain_model_hersteller'
routeFieldName: 'slug'
routeValuePrefix: '/'
我的 URL 是按照我的需要生成的:https://example.com/pluginpage/slug
问题是当我访问这个 link 时,TYPO3 响应 404 Not Found 错误: 找不到页面 该页面不存在或无法访问。原因:请求的页面不存在
我错过了什么吗?似乎 TYPO3 无法将 slug 映射到数据库实体。这是 TCA slug 字段的定义:
'slug' => [
'label' => 'Slug',
'config' => [
'type' => 'slug',
'generatorOptions' => [
'fields' => ['name'],
'fallbackCharacter' => '-',
'eval' => 'unique'
]
]
],
我做错了什么?有没有办法调试这个?我不知道去哪里看更深入。
提前致谢!
正如 Thomas 已经提到的,您应该删除 routeValuePrefix: '/'
这应该可以解决问题。