Проблемы с выпуском 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);
}