Как обновить, но если поле не заполнено - PullRequest
0 голосов
/ 26 февраля 2012

Мне нужно выполнить запрос сохранения / обновления, но обновить только те поля, которые не пусты. Моя форма содержит поле FILE, и если я не загружаю какой-либо файл, то при выполнении save () это поле становится пустым, даже если представлены предыдущие данные, так как я могу сохранить / обновить, но только поля с содержимым для обновления?

Приветствия и заранее спасибо

Ответы [ 2 ]

1 голос
/ 26 февраля 2012

В вашей модели вам необходимо предварительно проверить, являются ли данные пустыми или нет, и unset в этом случае.

if ($this->data['file'] == "") {
    unset($this->data['file']);
}
1 голос
/ 26 февраля 2012

Вы всегда можете добавить условие, которое проверяет, загружает ли пользователь файл или нет. Если нет, выберите текущее значение в базе данных для этого файла и обновите его до старого значения.

Например:

$update['description'] = $_POST['description']; //just another field
if($_POST['file']['name'] == "") //check if there's a new file
  $update['filename'] = $this->book->file_name; //current file name
else
  $update['filename'] = $_POST['file']['name']; //new file name in case the user uploaded a new file

$this->book->update($update); //update no matter what
...