cakePHP-saveAssociated()更新

cakePHP-saveAssociated()更新,cakephp,cakephp-2.3,Cakephp,Cakephp 2.3,我有两个模型,捐赠者有很多捐款 创建捐赠记录后,我想更新一些捐赠字段。我尝试使用saveAssociated,如下所示 $this->Donation->create(); $this->request->data['Donation']['donor_id'] = $id; $this->request->data['Donor']['last_donated'] = date('Ymd H:i:s', strtotime('now'));

我有两个模型,捐赠者有很多捐款

创建捐赠记录后,我想更新一些捐赠字段。我尝试使用saveAssociated,如下所示

$this->Donation->create();
$this->request->data['Donation']['donor_id'] = $id;
$this->request->data['Donor']['last_donated'] = date('Ymd H:i:s', strtotime('now'));            

if($this->Donation->saveAssociated($this->request->data , array('deep' => true))){
}
除了没有更新捐赠者,而是创建了一个新的捐赠者记录之外,一切都正常。 是否需要手动设置捐赠者id?

是否需要手动设置捐赠者id

更多说明:

在cake中,如果要更新某些内容,需要传递id,否则将创建新记录。您还可以像这样加载模型实例

$this->Model->id = $id;
然后save将用该id更新行。但是我总是觉得将该id添加到保存的数组中更安全,特别是在使用saveAll、saveMany和saveAssociated时

在你的情况下,你必须在某个地方有捐赠者的身份证,蛋糕并没有那么神奇,它也不知道你指的是什么捐赠者

像这样的

$this->request->data['Donor']['id'] = $the_id;
我会成功的

。。。或者,如果给您带来太多麻烦,您可以使用不同的查询来节省捐赠者上次捐赠的时间。

我是否需要手动设置捐赠者id

更多说明:

在cake中,如果要更新某些内容,需要传递id,否则将创建新记录。您还可以像这样加载模型实例

$this->Model->id = $id;
然后save将用该id更新行。但是我总是觉得将该id添加到保存的数组中更安全,特别是在使用saveAll、saveMany和saveAssociated时

在你的情况下,你必须在某个地方有捐赠者的身份证,蛋糕并没有那么神奇,它也不知道你指的是什么捐赠者

像这样的

$this->request->data['Donor']['id'] = $the_id;
我会成功的


。。。或者,如果给您带来太多麻烦,您也可以使用不同的查询来节省捐赠者上次捐赠的时间。

Hi Nunser。。谢谢你的详细解释!这一切如期而至。再次感谢!嗨,努瑟。。谢谢你的详细解释!这一切如期而至。再次感谢!