暂时从对象存储中删除对象 - TYPO3

时间:2017-01-18 07:32:57

标签: typo3 extbase

我有2个模型横幅和文件。横幅和文件通过mm关系连接。包含文件作为对象存储的标题对象。当我从对象存储中删除文件时,该文件被删除。我怎样才能删除关系而不是删除对象?

$banner->getFiles();

返回一个对象存储空间。

 $files = $banner->getFiles();
   foreach($files as $file){
       $uid = $file->getUid();
       if($uid==4){
           $banner->removeFiles($file);
       }
   }

当我完成上述代码时,文件模型的字段已更新为1

1 个答案:

答案 0 :(得分:2)

您希望这个过程采取什么样的行动?如果使用操作重定向持久保存$ banner对象或使用PersistenceManager手动保存文件,则只应真正删除该文件。

也许您也可以克隆ObjectStorage然后分离一些对象。

$files = clone $banner->getFiles();
   foreach($files as $file){
       $uid = $file->getUid();
       if($uid==4){
           $files->detach($file);
       }
   }

在此解决方案中,所有文件都应保留在$ banner中,但在$ files变量中删除了UID4。

更新:请参阅以下评论。删除= 1是由模型中的@cascade删除注释引起的。