symfony的灯具:设置ondelete:上refclass表CASCADE(symfony fi

2019-10-28 13:16发布

我使用的symfony 1.4.5,学说1.2和MySQL 5。

在我的schema.yml我有工作的伟大几个许多一对多的关系。 但我需要加入表有onDelete:CASCADE。

现在对于主义则需要添加onDelete:在哪里的外键存在,但由于refclass没有在任何schema.yml中关系我不能一边CASCADE。

示例模式:

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

现在,我尝试添加onDelete:两侧(Sc和Organisatie)CASCADE,但它们将被忽略这两种情况下,关系而成,但onDelete被忽略。

有谁知道如何得到这个工作?

Answer 1:

其实我原来的答复是正确的。 下面是我如何做到这一点在我建立的应用程序。

所以UserSearch具有毫米连接表称为SearchTag。 但我想我的级联的UserSearch删除到SearchTag表。

所以我明确地定义到SearchTag的关系,并把级联上realtionship。

我不喜欢使用ondelete因为它意味着你可以打破在phpMyAdmin等东西,所以使用“级联:[删除]”是指所有的删除是由应用程序处理。

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]


文章来源: symfony fixtures: set ondelete: CASCADE on refclass table