public function load($data, $formName = null) { $setAttributes = function (&$model, $data) { $loadResult = true; foreach ($data as $key => $value) { if ($model->hasKey($key)) { $model->{$key} = $value; } elseif (in_array($key, $model->safeAttributes())) { $model->{$key} = $value; } else { $model->addError(ErrorMessage::UnknownModelKey($model->className(), $key)); $loadResult = false; } } return $loadResult; }; $scope = $formName === null ? $this->formName() : $formName; if ($scope === '' && !empty($data)) { return $setAttributes($this, $data); } else { if (isset($data[$scope])) { return $setAttributes($this, $data[$scope]); } else { return false; } } }