我正在使用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
答案 0 :(得分:0)
在phpmyadmin中单击关系并查找onEdit操作
答案 1 :(得分:0)
我发现了问题:
在模型中存在关系之前最初与/ document / web模块一起生成的表单类。后来,关系被添加,表单和模型类再次生成,但不是web模块(或表单的实际视图),因此表单类预期但未收到关系,并且记录得到了在调用$ form-> save()方法时,不使用它们进行更新。
我通过取消设置Document表单类中的“productar_list”小部件和验证器来修复它。它不再是预期也不会被保存。它现在没有更新关系。