我会尽力解释我的情况,希望有人能帮助我解决这个问题:
我目前有一个“请求”模型。这包括一个 Web 表单和一个控制器,该控制器根据用户在表单上的选择保存一个或多个记录(例如,如果他们在多选框中进行了一堆选择,则会生成并保存多个记录)。
这很好用,但我希望将所有这些“请求”组合在一起以便于参考,因为它们是相关的。我创建了一个名为“组”的新模型。在我的“请求”模型中,我输入:
var $belongsTo = array('Group' => array('className' => 'Group', 'foreignKey' => 'group_id'));
并在“请求”数据库表中创建了 group_id 列。
在“组”控制器中,我把
var $hasMany = array('Requests' => array('className' => 'Request'));
现在,在我的“请求”控制器中,我对表单输入进行所有处理并创建记录,我尝试创建一个新的“组”
$this->Request->Group->create();
这可行,并且创建了“组”数据库记录(以及适当的“请求”),但是“请求”记录中的“组 ID”字段设置不正确。当我尝试手动操作时,例如将其设置为$this->Request->data['Group']['id']
or $this->Request->Group->id
,CakePHP 告诉我该值为 NULL。所以我无法知道这些协会是否真的有效。
显然我做错了什么 - 我是否必须将所有创建和保存逻辑从我的“请求”控制器移动到我的“组”控制器?好像这会很痛苦。从“孩子”的控制器一次创建一个“父母”和一堆“孩子”有问题吗?
作为记录 - 我正在使用 CakePHP 1.1,不幸的是无法升级。