我会尽力解释我的情况,希望有足够的人帮助我:
我目前有一个'请求'模型。这包括一个Web表单和一个控制器,它根据表单上的用户选择保存一个或多个记录(例如,如果他们在多选框中进行一系列选择,则会生成并保存多个记录)。
这样可以正常工作,但我希望将所有这些“请求”组合在一起以便于参考,因为它们是相关的。我创建了一个名为“群组”的新模型。在我的“请求”模型中,我说:
var $belongsTo = array('Group' => array('className' => 'Group', 'foreignKey' => 'group_id'));
并在'requests'数据库表中创建了group_id列。
在“群组”控制器中,我放了
var $hasMany = array('Requests' => array('className' => 'Request'));
现在,在我的“请求”控制器中,我执行表单输入的所有处理并创建记录,我尝试使用
创建一个新的“组”$this->Request->Group->create();
这样做,并且“组”数据库记录(以及适当的“请求”),但“请求”记录中的“group_id”字段未正确设置。当我尝试手动执行此操作时,例如将其设置为$this->Request->data['Group']['id']
或$this->Request->Group->id
,CakePHP告诉我此值为NULL。所以我无法知道这些协会是否有效。
显然我做错了 - 我是否必须将所有创建和保存逻辑从我的'请求'控制器移动到我的'组'控制器?这似乎是一种痛苦。从“儿童”的控制者那里立刻创建一个“父母”和一堆“儿童”是否有问题?
为了记录 - 我正在使用CakePHP 1.1,遗憾的是无法升级。
答案 0 :(得分:0)
尝试手动将“请求”记录中的“group_id”字段设置为$this->Request->Group->getLastInsertID();
应该为您提供最后创建的组的ID。