我正在使用symfony 1.4.5,Doctrine 1.2和Mysql 5。
在我的schema.yml中,我有一些非常有效的多对多关系。但是我需要连接表具有onDelete:CASCADE。
现在,对于学说,需要在外键存在的那一侧添加onDelete:CASCADE,但是由于refclass在schema.yml中没有任何关系,所以我不能。
模式示例:
Organisatie:
connection: doctrine
tableName: organisatie
columns:
org_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
naam:
type: string(30)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
Sc:
class: Sc
refClass: ScRegel
local: org_id
foreign: sc_id
Sc:
connection: doctrine
tableName: sc
columns:
sc_id:
type: integer(4)
fixed: false
unsigned: false
primary: true
autoincrement: true
notnull: true
sc_nummer:
type: string(15)
fixed: false
unsigned: false
primary: false
autoincrement: false
notnull: true
type:
type: string(20)
fixed: false
unsigned: false
primary: false
notnull: true
autoincrement: false
relations:
Organisatie:
class: Organisatie
refClass: ScRegel
local: sc_id
foreign: org_id
ScRegel:
connection: doctrine
tableName: sc_regel
columns:
sc_id:
type: integer(4)
primary: true
autoincrement: true
notnull: true
sc_id:
type: integer(4)
fixed: false
unsigned: false
primary: false
autoincrement: false
notnull: true
org_id:
type: integer(4)
fixed: false
unsigned: false
primary: false
notnull: false
autoincrement: false
现在,我尝试在双方(Sc和Organisatie)上都添加onDelete:CASCADE,但是在两种情况下都忽略它们,建立了关系,但是onDelete被忽略了。
有人知道如何使它工作吗?
最佳答案
其实我的原始答案是正确的。这是我在构建的应用程序中的处理方法。
因此,UserSearch具有一个名为SearchTag的m-m连接表。但是我想将对UserSearch的删除级联到SearchTag表。
因此,我明确定义了与SearchTag的关系,并将级联放在该Realationship上。
我不喜欢使用ondelete,因为它意味着您可以在phpmyadmin等中破坏事物,因此使用“ cascade:[delete]”意味着所有删除操作均由应用程序处理。
UserSearch:
actAs: [Timestampable]
columns:
user_id:
type: integer(4)
update_minutes: integer(4)
last_ran: integer
next_run: integer
running: boolean
relations:
Tags:
class: Tag
local: search_id
foreign: tag_id
refClass: SearchTag
SearchTags:
local: id
foreign: search_id
class: SearchTag
type: many
foreignType: one
cascade: [delete]
SearchTag:
columns:
search_id:
type: integer
primary: true
tag_id:
type: integer
primary: true
Tag:
columns:
name: {type: string(255), notnull: true}
relations:
Searches:
class: UserSearch
local: tag_id
foreign: search_id
refClass: SearchTag
SearchTags:
local: id
foreign: tag_id
class: SearchTag
type: many
foreignType: one
cascade: [delete]
关于mysql - symfony固定装置:set ondelete:refclass表上的CASCADE,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3100674/