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;
         }
     }
 }