首页 > 解决方案 > TYPO3 CMS 9 LTS:PersistedAliasMapper 在不同的 storagePids 中具有相同的 slug

问题描述

我有两个站点的设置。每个站点都有我的模型 tx_myext_domain_model_product 的扩展名,并且该产品有一个 slug。slug 对于一个站点是唯一的,但不是在整个实例中。因此,product-a对于两种不同的产品来说,可能是相同的 slug,驻留在不同的 storagePid 中。

使用通常的 PersistedAliasMapper 我找不到为映射记录定义存储 pid 的方法,因此在某些情况下我得到了错误的记录。

routeEnhancers:
  Products:
    aspects:
      slug:
        type: PersistedAliasMapper
        tableName: tx_myext_domain_model_product
        routeFieldName: slug

快速可视化:

uid,   pid,              title,       slug,        description
"1",   "10 [in Site A]", "Product A", "product-a", "Description in Site A"
"2",   "20 [in Site B]", "Product A", "product-a", "differing description in Site B"

有没有办法定义 storagePid,所以映射查询不仅可以通过映射的标题,还可以通过文件夹(或站点)获取?

谢谢你的帮助!

标签: routestypo3

解决方案


似乎是 9.5.15/9.5.16 之前的一个错误。我从 .14 更新到 .16,现在行为是正确的。


推荐阅读