Typo3 暂时从对象存储中删除对象-类型3
我有2个模型的横幅和文件。横幅和文件通过mm关系连接。包含作为对象存储的文件的横幅对象。从对象存储中删除文件时,将删除该文件。如何仅删除关系而不删除对象Typo3 暂时从对象存储中删除对象-类型3,typo3,extbase,Typo3,Extbase,我有2个模型的横幅和文件。横幅和文件通过mm关系连接。包含作为对象存储的文件的横幅对象。从对象存储中删除文件时,将删除该文件。如何仅删除关系而不删除对象 $banner->getFiles(); 返回一个对象存储 $files = $banner->getFiles(); foreach($files as $file){ $uid = $file->getUid(); if($uid==4){ $banner->
$banner->getFiles();
返回一个对象存储
$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中,但UID4在$files变量中被删除
更新:见下面的评论。deleted=1是由模型内部的@cascade remove注释引起的。您希望此过程采用何种操作?只有通过操作重定向或使用PersistenceManager手动持久化$banner对象时,才应该真正删除该文件 也许您还可以克隆ObjectStorage,然后分离一些对象
$files = clone $banner->getFiles();
foreach($files as $file){
$uid = $file->getUid();
if($uid==4){
$files->detach($file);
}
}
在此解决方案中,所有文件应保留在$banner中,但UID4在$files变量中被删除
更新:见下面的评论。deleted=1是由模型内部的@cascade remove注释引起的。您的问题很模糊。您实际上是在对文件对象调用delete()方法吗?然后,只需在Banner对象上使用remove方法即可。这应该删除关系并保留文件对象。你的问题很模糊。您实际上是在对文件对象调用delete()方法吗?然后,只需在Banner对象上使用remove方法即可。这将删除关系并保留文件对象。如果$banner模型中的$files声明为@cascade remove?其声明为@cascade remove,我不确定是否有帮助,但尝试删除注释,清除安装工具中的缓存,然后重试删除ObjectStorage的某些项。如果$banner模型中的$files声明为@cascade remove?其声明为@cascade remove,我不确定是否有帮助,但请尝试删除批注,清除安装工具中的缓存,然后重试删除ObjectStorage的某些项。