【发布时间】:2011-12-22 09:37:15
【问题描述】:
我认为我的 Doctrine schema.yml 存在配置问题,但我无法在这里找到正确的答案。
我有两个表,BetaMeeting 和 ProjectTester,它们通过 BetaMeetingAttendee 形成多对多关系。一切正常,我可以编辑一个 beta 会议,例如包括几个项目测试人员,并且所有关系都正确保存。但是,当我编辑一个已经与 beta 会议建立关系的项目测试人员时,保存后 M:N 关系会丢失。使用 Symfony 1.4.13 和管理生成器,以及 Doctrine 1.2,项目测试人员的编辑页面没有提及多对多关系,没有隐藏字段等。这可能是原因,数据不存在所以Doctrine删除了它?我认为没有必要包含它。
我的 schema.yml 如下,去掉了不相关的细节。
BetaMeeting:
connection: doctrine
tableName: BetaMeeting
columns:
id: { type: integer(4), primary: true, autoincrement: true }
project_id: { type: integer(4) }
date: { type: date }
relations:
Project:
local: project_id
foreign: id
foreignAlias: BetaMeetings
ProjectTester:
class: ProjectTester
refClass: BetaMeetingAttendee
foreignAlias: BetaMeetings
BetaMeetingAttendee:
connection: doctrine
tableName: BetaMeetingAttendee
columns:
beta_meeting_id: { type: integer(4), primary: true, autoincrement: false }
project_tester_id: { type: integer(4), primary: true, autoincrement: false }
relations:
BetaMeeting:
foreignAlias: BetaMeetingAttendees
ProjectTester:
foreignAlias: BetaMeetingAttendees
ProjectTester:
connection: doctrine
tableName: ProjectTester
columns:
id: { type: integer(4), primary: true, autoincrement: true }
tester_id: { type: integer(4) }
project_id: { type: integer(4) }
relations:
Tester:
local: tester_id
foreign: id
foreignAlias: Projects
Project:
local: project_id
foreign: id
foreignAlias: ProjectTesters
关于为什么在仅与 ProjectTester 对象的直接属性相关的编辑后关系被清除的任何线索?
【问题讨论】:
标签: database symfony1 doctrine yaml