Подтвердить что ты не робот

CakePHP - измененное поле не обновляется

Любые идеи о том, как отлаживать измененное поле, которое не обновляется? Созданное поле отлично работает.

Я не уверен, какой код вам нужно будет смотреть, поэтому дайте мне знать!

Спасибо

4b9b3361

Ответ 2

Вам следует попробовать проверить, не используете ли вы

 $this->ModelName->read(NULL, $id); 

перед сохранением ваших данных, если вы считаете, что не сделали этого - дважды проверьте его

Ответ 3

Скорее всего вы переписываете это поле, отключите поле от объекта, прежде чем сохранять его следующим образом:

unset($user['User']['modified']);

Теперь вы можете сохранить его:

$this->User->save($user);

Ответ 4

Это поле должно быть названо "изменено" с типом "datetime". Торт должен автоматически обновить поле для вас. Если вы хотите проверить, просто запросите его или загляните в базу данных.

Ответ 5

Проблема также может возникнуть, если вы используете запросы ручного обновления. Поле обновляется только тогда, когда вы используете собственные функции Cake.

Ответ 6

В AppModel.php просто напишите следующий код.

public function beforeSave($options = array())  {
    parent::beforeSave();
    if (isset($this->data[$this->alias]['modified'])) {
        unset($this->data[$this->alias]['modified']);
    }
    if (isset($this->data[$this->alias]['created'])) {
        unset($this->data[$this->alias]['created']);
    }

}

Это будет работать для всех моделей. Но мы можем сделать это и для отдельных МОДЕЛЕЙ.

Так как мы использовали parent::beforeSave(); в качестве нашей первой строки, поэтому , это может быть перезаписано в каждой отдельной модели. Благодаря наследованию.

Ответ 7

Сегодня у меня такая же проблема, и выяснилось, что поле modified обновляется только в том случае, если какие-либо изменения были сделаны, иначе поле не будет затронуто.