2011-03-25 13 views
5

En una migración, quiero agregar una columna de orden que por defecto es la ID de la columna. He intentado lo siguiente:Actualización de migración Yii

$this->update(
'item', // table 
    array( // columns 
    'item_order'=>':item_id' 
), 
    '',  // condition 
    array( // parameters 
    ':item_id'=>'item_id' 
) 
); 

Pero esto sólo da todo Identificación 0. (No estoy realmente sorprendido, ya que supongo que está tratando de utilizar la cadena en comparación con el nombre de la columna).

¿Alguna manera de hacerlo sin tener que construir manualmente SQL?

Respuesta

6

Envolver el nombre de la columna en un CDbExpression, que instruye Yii incluirlo en la consulta resultante no literal:

$this->update('item', array('item_order'=> new CDbExpression('item_id'))); 
+0

Eso es lo que pensaba, y es exactamente lo que terminé haciendo. Gracias por la confirmación :) –