ऑन डिलीट कैस्केड बच्चे को नहीं हटा रहा - php, symfony, orm, doctrine2

मेरे पास निम्न वर्ग और संबंध हैं:

/**
* AppMainBundleEntityPictureRenamer
* @ORMTable(name="app_picture_renamer")
* @ORMEntity(repositoryClass="AppMainBundleRepositoryPictureRenamerRepository")
*/
class PictureRenamer
{
/**
* @var integer $id
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @ORMManyToOne(targetEntity="AppUserBundleEntityUser", inversedBy="itemrenamer")
* @ORMJoinColumn(name="renamer_id", referencedColumnName="id", onDelete="CASCADE", nullable=false)
*/
protected $renamer;

}


class InstagramShopPicture
{
/**
* @var integer $id
*
* @ORMColumn(name="id", type="integer")
* @ORMId
* @ORMGeneratedValue(strategy="AUTO")
*/
protected $id;

/**
* @Exclude()
* @ORMOneToMany(targetEntity="AppMainBundleEntityPictureRenamer", mappedBy="picture", cascade={"persist","remove"}, fetch="EXTRA_LAZY")
*/
protected $renamer;

}

हालाँकि ऐसा क्यों है कि जब मैं फोन करता हूं $em->remove($picture); फिर मैं इसे फ्लश करता हूं, यह चित्र रेनमर को नहीं हटाता है? मैंने क्या गलत किया?

उत्तर:

जवाब के लिए 0 № 1

डिलीट कैस्केड को डेटाबेस में विदेशी कुंजी पर सेट किया जाता है? जब झरना सेट पर JoinColumn डेटाबेस को झरना का प्रबंधन करना चाहिए।

जोड़ने का प्रयास करें , cascade={"remove"} को ManyToOne के स्थान पर JoinColumn। इस तरह से डॉक्ट्रिन कैस्केड का प्रबंधन खुद करेगा।


संबंधित सवाल
सबसे लोकप्रिय