【发布时间】:2011-03-17 14:41:27
【问题描述】:
我遇到过要求用户填写有关建筑物的问卷的情况。 Building 模型可以 hasMany Questionnaire 不过,至少现在,Building hasOne Questionnaire 就足够了。困扰我的是前者不起作用,而后者起作用,我不知道为什么。
键遵循约定:buildings.id 在来自questionnaires.building_id 的外键中引用。在hasMany 场景中,在尝试插入questionnaires 记录时,外键会被忽略:
INSERT INTO `questionnaires` (`deleted`, `modified`, `created`, `id`) VALUES (1, '2011-03-17 10:32:24', '2011-03-17 10:32:24', '4d821b78-7314-4ab4-a532-226f6e891b5e')
根本没有提到building_id。不过,只要我将 Questionnaire 从 hasMany 数组移动到 hasOne 数组,一切都会完美运行。
任何对内在魔法的洞察都会很棒。我无法想象我是第一个碰到这个的人,但我不记得以前遇到过。
谢谢。
更新
所以我想我找到了答案。在我的表格中,因为我实际上只定义 一个 问卷(虽然我可以支持多个),所以我将输入定义为 Questionnaire.deleted,它适用于 hasOne,但不适用于hasMany。对于后者,我必须为Questionnaire.0.deleted 创建输入。我已经为无数hasMany 关系创建了表单,我只打算一次创建一个,我发誓我不记得以前必须这样做。这一直是一个要求吗?也许我只是需要暂时放下那些困难的东西。嘘。
【问题讨论】:
标签: cakephp cakephp-1.3