我正在尝试从多媒体库中删除多媒体库。
然而,画廊实体并没有removegalleryhasmedia之类的东西。
所以我做了一个笨拙的方法,但它不起作用。
$em = $this->getDoctrine()->getManager();
$firstGhmArray = $gallery->getGalleryHasMedias();
echo count($gallery->getGalleryHasMedias()) // before count
$afterGhmArray = array();
foreach ($firstGhmArray as $ghm){
if ($ghm->getId() == $id){ // id is the target id to delete
//delete
}
else {
array_push($afterGhmArray , $ghm);
}
$gallery->setGalleryHasMedias($afterGhmArray);
}
echo count($gallery->getGalleryHasMedias()) // after count
$em->persist($gallery);
$em->flush();我认为如果galleryHasMedias是普通的数组集合。
我可以使用此过程删除该元素。
我需要为galleryhasmedia做更多的事情??
发布于 2015-04-29 16:46:51
您可以覆盖Gallery实体并将此函数添加到其中:
public function clearGalleryHasMedias()
{
$this->galleryHasMedias->clear();
}galleryHasMedias字段是一个ArrayCollection,可以使用clear方法清除。虽然设置空数组并不能解决问题,但我想我的解决方案还是值得一试的。
https://stackoverflow.com/questions/29932929
复制相似问题