2014-12-04 100 views
0

我有以下类和关系:onDelete级联不删除子

/** 
* App\MainBundle\Entity\PictureRenamer 
* @ORM\Table(name="app_picture_renamer") 
* @ORM\Entity(repositoryClass="App\MainBundle\Repository\PictureRenamerRepository") 
*/ 
class PictureRenamer 
{ 
    /** 
    * @var integer $id 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @ORM\ManyToOne(targetEntity="App\UserBundle\Entity\User", inversedBy="itemrenamer") 
    * @ORM\JoinColumn(name="renamer_id", referencedColumnName="id", onDelete="CASCADE", nullable=false) 
    */ 
    protected $renamer; 

} 


class InstagramShopPicture 
{ 
    /** 
    * @var integer $id 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

     /** 
    * @Exclude() 
    * @ORM\OneToMany(targetEntity="App\MainBundle\Entity\PictureRenamer", mappedBy="picture", cascade={"persist","remove"}, fetch="EXTRA_LAZY") 
    */ 
    protected $renamer; 

} 

但是那为什么当我打电话$em->remove($picture);然后我冲它,它不会删除的图片更名?我做错了什么?

回答

0

是否在数据库中的外键上设置了删除级联? 在JoinColumn上设置级联时,数据库应管理级联。

尝试将, cascade={"remove"}添加到ManyToOne而不是JoinColumn。这样教义将自己管理级联。