2015-07-02 2 views
1

Я пытаюсь обновить БД, используя некоторые данные, извлеченные из внешнего API. Appstatus и количество оба происходят из одного и того же API, и я вижу, что значения верны, и они полностью сокращают действие, которое нужно обновить, но когда они обновляются, количество не сохраняется, а остальные два сохраняются в БД.CakePHP 2.4 - Обновление базы данных не сохраняет все прошедшие данные Одно поле никогда не сохраняется

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

данные Содержание $ приложение добавлено модели с правильным Индентификационным 147

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

) 

Выхода из $ сохраненных после обновления Индентификационного 147:

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 и измененные значения различаются в базе данных после обновления, но столбец количества никогда не сохраняется в базе данных и остается равным 0, хотя ответ на обновление указывает количество, которое должно быть 13001.

Миграция используется для добавления столбца сумма к существующей БД таблица выглядит хорошо, и я могу видеть его в БД:

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

Я просматривал docs, а также при использовании создать для обновления вы должны использовать clear(), но я попробовал, и он ничего не делает. Любые идеи, почему это не сохраняется?

UPDATE

я могу обновить любое другое поле в модели как раз перед тем, как сэкономить: адрес, почтовый индекс, количество, STREET_NAME и т.д.; и обновить их без проблем, но нет того, что amount_due никогда не обновляется.

ответ

0

Очевидно, CakePHP кэширует модели, поэтому новое добавленное поле не было в кеше. После продувания кеша все работает так, как должно. Это время, когда я никогда не вернусь, но это первое, что я проверю с этого момента, так что извлеченный урок.