public function setRow($id = null, array $values = [])
{
$builder = $this->conn->createQueryBuilder();
$pk = $this->getPrimaryColumn()->getExpr();
$builder->update($this->tableName);
foreach ($values as $formKey => $formValue) {
/** @var SQLColumn $col */
$col = null;
if (!isset($this->columns[$formKey])) {
//TODO: Throw library-specific exceptions
throw new \Exception("Unknown column");
}
$col = $this->columns[$formKey];
$val = $col->cleanValue($values[$formKey]);
$builder->set($col->getExpr(), $builder->createNamedParameter($val));
}
LoggingHelper::logBuilder($builder);
$builder->where("{$pk} = " . $builder->createNamedParameter($id))->execute();
return true;
}