protected function prepareUpdate($updates)
{
$prepared = [];
foreach ($this->builder->fields() as $field) {
$columns = $field->column();
$value = static::getDataByColumn($updates, $columns);
if ($value !== '' && empty($value) && !$field instanceof File) {
continue;
}
if (method_exists($field, 'prepare')) {
$value = $field->prepare($value);
}
if ($value != $field->original()) {
if (is_array($columns)) {
foreach ($columns as $name => $column) {
array_set($prepared, $column, $value[$name]);
}
} elseif (is_string($columns)) {
array_set($prepared, $columns, $value);
}
}
}
return $prepared;
}