lithium\data\source\Database::_updateFields()
Renders the fields part for update queries.
Also handles correct incremented/decremented fields.
Parameters
-
array
$data
-
array
$schema
An array defining the schema of the fields used in the criteria.
-
object
$context
Generally a
data\model\Query
instance.
Returns
stringSQL fragment, with fields separated by comma.
Source
protected function _updateFields($data, $schema, $context) {
$fields = array();
$increment = array();
if ($entity = $context->entity()) {
$export = $entity->export();
$increment = $export['increment'];
}
foreach ($data as $field => $value) {
$schema += array($field => array('default' => null));
$name = $this->name($field);
if (isset($increment[$field])) {
$fields[] = $name . ' = ' . $name . ' + ' . $this->value($increment[$field], $schema[$field]);
} else {
$fields[] = $name . ' = ' . $this->value($value, $schema[$field]);
}
}
return join(', ', $fields);
}