public function set($field, $value, $modified = true)
{
// Custom setter method
$camelCaseField = str_replace(' ', '', ucwords(str_replace('_', ' ', $field)));
$setterMethod = 'set' . $camelCaseField;
if (!in_array($field, $this->_inSetter) && method_exists($this, $setterMethod)) {
$this->_inSetter[$field] = true;
$value = call_user_func([$this, $setterMethod], $value);
unset($this->_inSetter[$field]);
}
if (array_key_exists($field, $this->_data) || !in_array($field, self::$relationFields[get_class($this)])) {
if ($modified) {
$this->_dataModified[$field] = $value;
} else {
$this->_data[$field] = $value;
}
} elseif (in_array($field, self::$relationFields[get_class($this)])) {
// Set relation
$this->relation($field, $value);
}
}