這似乎很簡單,但我似乎太愚蠢,做不到。我爲fe_users添加了一個名爲「cv」的字段用於上傳PDF文件。在我的FrontendUser型號,它看起來是這樣的:TYPO3 8與extbase:刪除FileReference
/**
* @var \TYPO3\CMS\Extbase\Domain\Model\FileReference
* @cascade remove
*/
protected $cv;
上傳文件的工作就像一個魅力,我在零件中使用的腳本https://github.com/helhum/upload_example。
唯一的問題是刪除這樣的文件,或者說,刪除sys_file和用戶之間的連接。提交表單,並勾選複選框後,我試着這樣做:如果我看一看在後端
$user->setCv(null);
$user->setEdited(new \DateTime());
$this->frontendUserRepository->update($user);
$persistenceManager->persistAll();
重新加載頁面後,CV文件仍連接到用戶(而是「編輯」是正確設置爲當前日期時間)。我不明白這一點,我怎麼能將FileReference的值設置爲null?
如果我把它們存儲在一個M:N的關係,它仍然可以創建與屬性的表單?如果是這樣 - 如何? – Chi
它們存儲在一個m:n關係中,因爲它在'TCA'中爲'sys_file_reference'表定義,所以你沒有改變使用1:1。如果你想添加一個文件到ObjectStorage,你可以使用ObjectStorage-> attach($ file)'。如果您不想使用m:n關係,則可以使用「TYPO3 \ CMS \ Core \ Resource \ File」。 –
如果CV只是每個用戶的單個文件,他爲什麼要使用ObejctStorage? – j4k3