public function __set($name, $value) { if ($this->model->hasAttribute($name)) { $this->model->setAttribute($name, $value); } elseif (isset($this->relations[$name])) { if (is_array($value)) { $this->relations[$name]->setAttributes($value); } elseif ($value instanceof ActiveRecord) { $this->relations[$name] = $value; } } else { foreach ($this->relations as $model) { if ($model->hasAttribute($name)) { $model->setAttribute($name, $value); } } parent::__set($name, $value); } }