這是一個奇怪的一個無法刪除的對象,由於外鍵約束
採用此架構:
Contact:
actAs: [Timestampable,SoftDelete]
columns:
first_name: { type: string(255), notnull: true }
second_name: { type: string(255), notnull: true }
relations:
Forums:
class: Forum
refClass: ContactForum
local: forum_id
foreign: contact_id
foreignAlias: Contacts
ContactForums:
local: id
foreign: contact_id
class: ContactForum
type: many
foreignType: one
cascade: [delete]
Forum:
actAs: [Timestampable,SoftDelete]
columns:
name: { type: string(255), notnull: true }
relations:
ContactForums:
class: ContactForum
local: id
foreign: forum_id
type: many
cascade: [delete]
ContactForum:
actAs: [Timestampable]
columns:
contact_id: { type: integer, primary: true }
forum_id: { type: integer, primary: true }
然後,如果我們到Contact
對象幾個Forum
對象的關聯,然後試着刪除此Contact
對象,我們收到此錯誤信息:
完整性約束違規:19 contact_forum.created_at可能無法 NULL
如果您將SoftDelete添加到鏈接表中,則刪除工作正常,SoftDelete也會正常工作。但是,我們不希望鏈接表上的SoftDelete,因爲它意味着我們的主鍵無法正常工作。這是一個錯誤?
由於doctrine 1.2 trac已經關閉,解決這個問題的最好方法是爲關係定義onDelete:CASCADE(並且可能會將softDelete行爲添加到其他實體) – glerendegui 2016-02-19 19:55:41