Doctrine_Query actualización con valor flotante
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();
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