簡體   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