public function __set($name, $value)
{
$isState = false;
$isScope = false;
if (substr($name, 0, 3) == 'flt') {
$isState = true;
$name = strtolower(substr($name, 3, 1)) . substr($name, 4);
} elseif (substr($name, 0, 5) == 'scope') {
$isScope = true;
$name = strtolower(substr($name, 5, 1)) . substr($name, 5);
}
// If $name is a field name, set its value
if (!$isState && !$isScope && array_key_exists($name, $this->recordData)) {
$this->setFieldValue($name, $value);
} elseif (!$isState && !$isScope && array_key_exists($name, $this->aliasFields) && array_key_exists($this->aliasFields[$name], $this->recordData)) {
$name = $this->aliasFields[$name];
$this->setFieldValue($name, $value);
} elseif ($isScope || method_exists($this, 'scope' . ucfirst($name))) {
$method = 'scope' . ucfirst($name);
$this->{$method}($value);
} else {
$this->setState($name, $value);
}
}