Проблемы с выпуском CakePHP()

У меня есть таблица изображений с столбцом type. Я просто хочу обновить все строки, чтобы изменить тип на gallery, где user_id соответствует определенному пользователю.

Я использую этот код

    $this->Image->updateAll(array('Image.type' => 'gallery'), 
    array('Image.user_id' => $this->Auth->user('id')));

Но я получаю эту ошибку: SQL Error: 1054: Unknown column 'gallery' in 'field list'

Почему галерея добавляется в список полей?
Разве синтаксис не должен устанавливать тип в галерею?

Спасибо!

Ответ 1

Обнаружено это в руководстве:

Массив $fields принимает выражения SQL. Буквенные значения должны указываться вручную.

Таким образом, должно работать следующее:

$this->Image->updateAll(
    array('Image.type' => "'gallery'"), 
    array('Image.user_id' => $this->Auth->user('id'))
);

Ответ 2

В вашей модели сделайте что-то подобное в вашем методе....

public function saveImage($type='')
{
 // I would add a test for $type
 $db = $this->getDataSource();
 $fields = array('type' => $type);
 $fields = $db->value($fields, 'string'); // will format strings needed for updateAll()
 $condition = array('user_id' => $this->Auth->user('id'));

 // I would add a test for user id before running updateAll

  $this->updateAll($fields, $conditions);

}