public function updateFields($fields, $page)
{
$originals = $this->getOriginalFields($fields);
$fields = $this->getUpdatedFields($fields);
$model = $this->getModelFor($fields);
$values = $this->getValues($fields, $model, $page);
$rules = $this->getRules($fields);
$messages = $this->getMessages($fields);
$validator = $this->Validator->make($values, $rules, $messages);
if ($validator->fails()) {
$this->restoreOriginalFields($originals);
throw new ModelFieldValidationFailedException("Validation failed!", $validator->errors());
}
foreach ($values as $attribute => $value) {
$model->{$attribute} = $value;
}
$model->save();
return $fields;
}