我有2个模型横幅和文件。横幅和文件通过mm关系连接。包含文件作为对象存储的标题对象。当我从对象存储中删除文件时,该文件被删除。我怎样才能删除关系而不是删除对象?
$banner->getFiles();
返回一个对象存储空间。
$files = $banner->getFiles();
foreach($files as $file){
$uid = $file->getUid();
if($uid==4){
$banner->removeFiles($file);
}
}
当我完成上述代码时,文件模型的字段已更新为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删除注释引起的。