【问题标题】:onDelete cascade not deleting childonDelete 级联不删除子级
【发布时间】:2014-12-04 09:05:58
【问题描述】:

我有以下类和关系:

/**
 * 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); 然后我刷新它时,它不会删除图片重命名器?我做错了什么?

【问题讨论】:

    标签: php symfony orm doctrine-orm


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-06-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      相关资源
      最近更新 更多