public function init() { parent::init(); /*$this->owner->addRule($this->getAttributeName(), 'in', [ 'range' => $this->getOptions(), ]);*/ }
/** * Constructor for creating form model from entity object * * @param array $params * @return static */ public static function create($params) { $params['class'] = static::className(); /** @var static $model */ $model = Yii::createObject($params); $params = []; if (!empty($params['attribute'])) { $params['name'] = $params['attribute']; } foreach ($model->entityModel->getEavAttributes()->andWhere($params)->all() as $attribute) { $handler = AttributeHandler::load($model, $attribute); $attribute_name = $handler->getAttributeName(); // // Add rules // if ($attribute->eavType->storeType == ValueHandler::STORE_TYPE_RAW) { $model->addRule($attribute_name, 'default', ['value' => $attribute->defaultValue]); } if ($attribute->eavType->storeType == ValueHandler::STORE_TYPE_OPTION) { $model->addRule($attribute_name, 'default', ['value' => $attribute->defaultOptionId]); } if ($attribute->eavType->storeType == ValueHandler::STORE_TYPE_ARRAY) { $model->addRule($attribute_name, 'string'); } if ($attribute->required) { $model->addRule($attribute_name, 'required'); } else { $model->addRule($attribute_name, 'safe'); } // // Load attribute value // $value = $handler->valueHandler->load(); if (!$value) { // Set default attribute $value = $handler->valueHandler->defaultValue(); } $model->defineAttribute($attribute_name, $value); // // Add widget handler // $model->handlers[$attribute_name] = $handler; } // // Set POST data // if (Yii::$app->request->isPost && Yii::$app->request->getIsConsoleRequest() == false) { $modelName = self::getModelShortName($model->entityModel); $post = Yii::$app->request->post($modelName); $model->load($post, 'EavModel'); } return $model; }
public function init() { parent::init(); //$this->owner->addRule($this->getAttributeName(), 'string', ['max' => 255]); }