php - CakePHP 2.4 - 数据库更新不保存所有传递的数据一个字段永远不会持久化

标签 php mysql cakephp cakephp-2.4

我正在尝试使用从外部 API 提取的一些数据来更新数据库。 appstatus 和 amount 都来自同一个 API,我可以看到这些值是正确的,并且它们通过要更新的操作一直保持下去,但是当它们更新时,amount 不会持久化,而其他两个会持久化在数据库中。

$this->Application->create();
$this->Application->id = $appVal['Application']['id'];
$saved = $this->Application->save($app);
$this->Application->clear();

添加到模型的 $app 的数据内容,正确的记录 ID 为 147

2015-07-02 22:23:42 Debug: DATA TO SAVE: Array
(
    [Application] => Array
        (
            [appstatus] => Approved
            [app_step] => 5
            [amount] => 13001
        )

)

记录 ID 147 更新后 $saved 的输出:

2015-07-02 22:23:42 Debug: DATA THAT WAS SAVED: Array
(
    [Application] => Array
        (
            [appstatus] => Approved
            [user_status] => 2
            [app_step] => 5
            [amount_due] => 13001
            [modified] => 2015-07-02 22:23:42
        )

)

更新后,appstatus、app_step 和修改后的值在数据库中都不同,但是 amount 列永远不会保留在数据库中,并且保持为 0,即使更新响应指示金额为 13001。

用于将金额列添加到现有数据库表的迁移看起来没问题,我可以在数据库中看到它:

ALTER TABLE  `applications` ADD  `amount_due` DOUBLE NOT NULL AFTER  `app_step`

我已经查看了 docs ,当使用 create 更新时,你应该使用 clear(),但我试过了,它没有做任何事情。有什么想法为什么不坚持吗?

更新

我可以在保存之前更新模型中的任何其他字段,例如:地址、邮政编码、金额、街道名称等;并毫无问题地更新它们,但是永远不会更新 amount_due。

最佳答案

显然,CakePHP 缓存了模型,因此刚刚添加的新字段不在缓存中。清除缓存后,一切正常。那是我永远不会回来的时间,但这是我从现在开始检查的第一件事,所以吸取教训。

关于php - CakePHP 2.4 - 数据库更新不保存所有传递的数据一个字段永远不会持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31195767/

相关文章:

php - 如何在单个查询中运行多个查询

mysql - MySQL数据库开发问题

php - CakePHP 3 : Display data from join table used in custom finder

Cakephp 标准 - 在 Controller 中编写东西是正确的标准吗

cakephp - 在 Controller 中访问另一个 CakePHP 模型的最佳方法是什么?

php - innodb mysql无法更新、搜索、删除表中的某些某些项目

php - php中带有foreach语句的多数组回显

php - Cakephp 2报告级别0的错误

php - JavaScript 中的 Get_option() 错误?

php - 网上招生系统