2012-01-13 10 views
41

त्रुटि

हटा सकते हैं या एक माता पिता पंक्ति को अद्यतन नहीं कर सकता: एक विदेशी कुंजी बाधा विफल रहता है।सिद्धांत 2 OneToMany कास्केड सेट शून्य

कक्षाएं

class Teacher { 

    /** 
    *@ORM\OneToMany(targetEntity="publication", mappedBy="teacher") 
    */ 
    protected $publications; 
} 

class Publication { 

    /** 
    * @ORM\ManyToOne(targetEntity="Teacher", inversedBy="publications") 
    * @ORM\JoinColumn(name="teacher_id", referencedColumnName="id") 
    */ 
    protected $teacher; 
} 

मैं

क्या मैं चाहता हूँ कि जब आप एक शिक्षक को हटाते हैं, id_teacher शून्य करने के लिए संशोधित किया गया है यह सुनिश्चित करने के लिए है चाहता हूँ। मैं प्रकाशन रखना चाहता हूं लेकिन प्रोफेसर के संदर्भ में।

मुझे नहीं पता कि यह सिद्धांत में कैसे करता है, क्या यह संभव है? या हमेशा संबंध शिक्षक के साथ होना चाहिए?

उत्तर

127

आप इस तरह अपने इकाई प्रकाशन की टिप्पणी में विकल्प onDelete="SET NULL" जोड़ना चाहिए:

class Publication 
{ 
    /** 
    * @ORM\ManyToOne(targetEntity="Teacher", inversedBy="publications") 
    * @ORM\JoinColumn(name="teacher_id", referencedColumnName="id", onDelete="SET NULL") 
    */ 
    protected $teacher; 
} 

चीयर्स!

+13

ने मध्य 2012 का उत्तर दिया और आज भी मेरी मदद की! धन्यवाद! –

+11

कृपया ध्यान दें कि इसे जोड़ने के बाद आपको अपना डेटाबेस स्कीमा अपडेट करना होगा। – priktop

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^