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

CakePHP 2.4 - DB Update Doesn't Save All Passed Data One Field is Never Persisted

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

$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,即使更新响应指示 amount to是 13001.

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

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

我查看了 docs,使用 create 更新时你应该使用 clear(),但我试过了,它没有做任何事情。知道为什么这没有被坚持吗?

更新

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

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