我想了解Symfony2中如何处理集合类型。我使用的是Symfony 2.4.6和Sonata Admin 2.2.11。
所以,我有一个Banner实体,它将OneToMany与文件联系起来。当我单独添加或删除文件时,它工作正常,但如果我要在同一个更新中执行此操作,它将变得混乱。
例如:
输出将是:file1,file2,file5(file4被file5替换)。
我无法在集合类型中找到对文件ID的任何引用,那么Symfony应该如何知道要删除哪个集合?
感谢您的任何解释。
我的实体看起来像:
class Banner
{
/.../
/**
* @ORM\OneToMany(targetEntity="BannerFile", cascade={"persist", "remove"}, mappedBy="banner", orphanRemoval=true)
*/
private $bannerFiles;
/.../
/**
* Remove bannerFiles
*
* @param BannerFile $bannerFiles
*/
public function removeBannerFile(BannerFile $bannerFiles)
{
$this->bannerFiles->removeElement($bannerFiles);
}
}
class BannerFile
{
/.../
/**
* @var integer $banner
*
* @ORM\ManyToOne(fetch="EXTRA_LAZY", inversedBy="bannerFiles", targetEntity="Banner")
* @ORM\JoinColumn(name="banner_id", nullable=false, onDelete="CASCADE", referencedColumnName="id")
*/
private $banner;
}