繁体   English   中英

TYPO3缓存行为与更新的模型

[英]TYPO3 cache behaviour with updated models

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

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

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

我感谢各种帮助!

Paddaels格蕾兹

我记得从域模型到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基本模型,因此您不必编写任何方法。

要将模型映射到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记录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM