这似乎很简单,但我似乎太愚蠢,做不到。我为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