Pregunta

necesito el equilibrio del usuario de la subasta, por lo que hago:

Doctrine_Query::create()->from('User')->update('balance', 'balance + 0.15')->execute();

Y me dio un error "Desconocido alias componente 0". Creo que es debido a la 0 0,15 Entonces, ¿cómo puedo actualizar (usando DQL) equilibrio sin consultas SELECT adicionales a la mesa del usuario a buscar el equilibrio, el cálculo de nuevo el equilibrio y hacer consulta como Doctrine_Query::create()->from('User')->update('balance', '?', $new_balance)->execute();

¿Fue útil?

Solución

Esta solución funciona bien para MySQL !!!

Doctrine_Query::create()->update('Users')->set('balance', 'balance + "0.15"')->execute();

Otros consejos

Su hipótesis se ve bien. Doctrina cree que el 0 es un alias de la tabla. ¿Ha intentado utilizar set()?

A partir de los documentos:

$q = Doctrine_Query::create()
    ->update('Account')
    ->set('amount', 'amount + 200')
    ->where('id > 200');
// If you just want to set the amount to a value
$q->set('amount', '?', 500);
echo $q->getSqlQuery();

// UPDATE account
// SET amount = amount + 200
// WHERE id > 200
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top