带有更新模型的 TYPO3 缓存行为

PaddaelsM

我从 Typo3 6.2 LTS 有这种奇怪的行为。在我的扩展中,我有一个带有 FileReference 属性的模型。此属性具有vaule != 0. 该值确实存在于sys_file_reference表中。

不会发生奇怪的魔法。如果我尝试访问这个文件,我只会得到一个null值而不是 FileReference-/FileObject。

我们已经清除了缓存(服务器和浏览器),但什么也没有。还是null

我感谢每一种帮助!

格里兹,帕达尔

菲利普·兰恩

我记得从域模型到 FileReference 建立 1:1 的关系总是很困难。我建议您使用现有模式并为此目的使用 ObjectStorage。

您可以从 tt_content 表(例如字段图像)的现有 tca 中复制必要的 TCA。属性注释应如下所示:

/**
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Extension\Domain\Model\FileReference>
 * @lazy
 * @cascade remove
 */
 protected $propName;

当然,您必须在自己的命名空间中创建 FileReference 模型。但是您可以扩展Extbase basemodel,因此您不必编写任何方法。

要将您的模型映射到 sys_file_reference 表,您必须添加一些排版。

为此,在您的扩展文件夹中创建一个 ext_typoscript_setup.txt 并插入以下代码(调整命名空间和模型名称)

config.tx_extbase.persistence.classes {
    Vendor\Extension\Domain\Model\FileReference.mapping {
        tableName = sys_file_reference
    }
}

清除安装工具中的缓存(当然还有数据库迁移)后,它应该可以工作了。

说明:

@lazy: Typo3 不会一次获取所有引用,只有在访问该属性时。

@cascade remove:一旦模型被删除,Extbase 将删除与您的域模型相关的所有 sys_file_reference 记录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章