2011-08-08 11 views
10

Tengo una tabla de imágenes con una columna llamada type. Simplemente quiero actualizar todas las filas para cambiar el tipo a gallery donde el user_id coincide con un usuario en particular.CakePHP updateAll() problemas

estoy usando el código

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

Pero me sale este error: SQL Error: 1054: Unknown column 'gallery' in 'field list'

¿Por qué es la galería que se añade a la lista de campos?
¿No se supone que la sintaxis establece el tipo en la galería?

Gracias!

Respuesta

22

encontrado esto en the manual:

The $fields array accepts SQL expressions. Literal values should be quoted manually.

Por lo tanto, el siguiente debería funcionar:

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

Maldición, excelente respuesta, he estado mirando una consulta similar en toda la mañana. – usumoio