/** * Constructor for creating form model from entity object * * @param array $params * @return static */ public static function create($params) { $params['class'] = static::className(); /** @var self $model */ $model = Yii::createObject($params); foreach ($model->entityModel->getRelation($model->behavior->relationName)->all() as $attribute) { $handler = AttributeHandler::load($model, $attribute); $key = $handler->getAttributeName(); $model->defineAttribute($key, $handler->valueHandler->load()); $model->defineAttributeLabel($key, $attribute->getAttribute('name')); if ($attribute->required) { $model->addRule($key, 'required'); } if ($handler->valueHandler instanceof RawValueHandler) { $model->addRule($key, 'default', ['value' => $attribute->defaultValue]); } if ($handler->valueHandler instanceof OptionValueHandler) { $model->addRule($key, 'default', ['value' => $attribute->defaultOptionId]); } $model->handlers[$key] = $handler; } return $model; }