暂时从对象存储中删除对象 - TYPO3
Removing object temporarily from object storage - TYPO3
我有 2 个模型横幅和文件。横幅和文件通过 mm 关系连接。包含文件作为对象存储的横幅对象。当我从对象存储中删除文件时,该文件将被删除。我怎样才能只删除关系而不是删除对象?
$banner->getFiles();
return一个对象存储。
$files = $banner->getFiles();
foreach($files as $file){
$uid = $file->getUid();
if($uid==4){
$banner->removeFiles($file);
}
}
当我完成上面的代码时,文件模型的删除字段更新为 1
你希望这个过程在什么样的动作中?如果您使用操作重定向或手动使用 PersistenceManager 保留 $banner 对象,则仅应真正删除该文件。
也许您还可以克隆 ObjectStorage,然后分离一些对象。
$files = clone $banner->getFiles();
foreach($files as $file){
$uid = $file->getUid();
if($uid==4){
$files->detach($file);
}
}
在此解决方案中,所有文件都应保留在 $banner 中,但在 $files 变量中删除了 UID4。
更新: 请参阅下面的评论。 deleted=1 是由模型内部的@cascade remove 注释引起的。
我有 2 个模型横幅和文件。横幅和文件通过 mm 关系连接。包含文件作为对象存储的横幅对象。当我从对象存储中删除文件时,该文件将被删除。我怎样才能只删除关系而不是删除对象?
$banner->getFiles();
return一个对象存储。
$files = $banner->getFiles();
foreach($files as $file){
$uid = $file->getUid();
if($uid==4){
$banner->removeFiles($file);
}
}
当我完成上面的代码时,文件模型的删除字段更新为 1
你希望这个过程在什么样的动作中?如果您使用操作重定向或手动使用 PersistenceManager 保留 $banner 对象,则仅应真正删除该文件。
也许您还可以克隆 ObjectStorage,然后分离一些对象。
$files = clone $banner->getFiles();
foreach($files as $file){
$uid = $file->getUid();
if($uid==4){
$files->detach($file);
}
}
在此解决方案中,所有文件都应保留在 $banner 中,但在 $files 变量中删除了 UID4。
更新: 请参阅下面的评论。 deleted=1 是由模型内部的@cascade remove 注释引起的。