Log*_*ter 1 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'));
if($this->Donation->saveAssociated($this->request->data , array('deep' => true))){
}
Run Code Online (Sandbox Code Playgroud)
一切都有效,除了捐赠者没有更新,但完全创建了一个新的捐赠记录.
我是否需要以某种方式手动设置捐赠者ID?
"我是否需要以某种方式手动设置捐赠者ID?"
是.
更多解释:
在蛋糕中,如果要更新某些内容,则需要传递ID,否则您将创建新记录.您也可以"加载"模型实例
$this->Model->id = $id;
Run Code Online (Sandbox Code Playgroud)
然后保存将更新具有该ID的行.但我总是发现将id添加到已保存的数组更加精神安全,特别是在使用时saveAll,saveMany和saveAssociated.
在你的情况下,你必须在某个地方拥有捐赠者的身份证,蛋糕不是那么神奇,它不会知道你所指的捐赠者.
像这样的东西
$this->request->data['Donor']['id'] = $the_id;
Run Code Online (Sandbox Code Playgroud)
会做的.
...或者你可以用不同的查询保存捐赠者的last_donated时间,如果它给你带来太多麻烦.
| 归档时间: |
|
| 查看次数: |
4366 次 |
| 最近记录: |