这看起来很简单,但我似乎太愚蠢了 . 我在fe_users中添加了一个字段,名为“cv”,用于上传pdf文件 . 在我的FrontendUser模型中,它看起来像这样:
/**
* @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 Value设置为null?
1 回答
务必检查您的模型 .
FileReferences
存储在M:N关系中 . 因此,您必须在模型中使用folling声明:在
__constructor
初始化:现在你的
FileReference
在ObjectStorage
中 . 要清除所有FileReferences
,您可以将cv
设置为new \TYPO3\CMS\Extbase\Persistence\ObjectStorage()
: