记录更新失去了学说关系

时间:2010-07-19 21:00:21

标签: php mysql symfony1 doctrine

我正在使用Symfony和Doctrine,并且有几个多对多的关系可以正常工作。

但是有一个名为“document”的表,它包含可以与多种内容相关的文档,并且有一个自己的管理部分。

每当我更新一个Document时,它与其余表的每个关系都会丢失。

我用Google搜索了一段时间但找不到原因。

¿你有过这样的经历吗?我能做什么?

这是架构,但MySQL中不存在约束。

Document:
  actAs: [Timestampable]
  columns:
    title: string(255)
    filename: string(255)
    owner_id: integer
Productar:
  actAs:
    Timestampable: ~
    I18n:
      fields: [title, tagline, intro, body]
  columns:
    title: string(255)
    tagline: clob
    intro: clob
    body: clob
    video: string(255)
    header_image: string(255)
    small_image: string(255)
  relations:
    Documents:
      class:        Document
      local:        productar_id
      foreign:      document_id
      type:         many
      refClass:     ProductarDocument
      onDelete:     SET NULL
ProductarDocument:
  actAs: [Timestampable]
  columns:
    productar_id:
      type: integer
      fixed: false
      unsigned: false
      primary: true
      autoincrement: false
    document_id:
      type: integer
      fixed: false
      unsigned: false
      primary: true
      autoincrement: false
  relations:
    Productar:
      class:        Productar
      local:        productar_id
      foreign:      id
      onDelete:     SET NULL  # Also tried with CASCADE
    Document:
      class:        Document
      local:        document_id
      foreign:      id
      onDelete:     SET NULL  # Also tried with CASCADE

2 个答案:

答案 0 :(得分:0)

在phpmyadmin中单击关系并查找onEdit操作

答案 1 :(得分:0)

我发现了问题:

在模型中存在关系之前最初与/ document / web模块一起生成的表单类。后来,关系被添加,表单和模型类再次生成,但不是web模块(或表单的实际视图),因此表单类预期但未收到关系,并且记录得到了在调用$ form-> save()方法时,不使用它们进行更新。

我通过取消设置Document表单类中的“productar_list”小部件和验证器来修复它。它不再是预期也不会被保存。它现在没有更新关系。