public function beforeValidationOnCreate()
{
$metadata = $this->getModelsMetaData();
$defaults = $metadata->getDefaultValues($this);
$attributes = $metadata->getNotNullAttributes($this);
# set all not null fields to their default value.
foreach ($attributes as $field) {
if (!property_exists($this, $field)) {
continue;
}
if (isset($this->{$field}) || !is_null($this->{$field}) || !isset($defaults[$field])) {
continue;
}
$this->{$field} = new RawValue($defaults[$field]);
}
}