1

我会尽力解释我的情况,希望有人能帮助我解决这个问题:

我目前有一个“请求”模型。这包括一个 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,不幸的是无法升级。

4

1 回答 1

0

尝试将“请求”记录中的“group_id”字段手动设置为$this->Request->Group->getLastInsertID();

这应该会给你最后创建的组的 ID。

于 2013-07-09T14:12:07.553 回答