Inheritance: extends yii\base\Widget
Ejemplo n.º 1
0
 public function init()
 {
     parent::init();
     /*$this->owner->addRule($this->getAttributeName(), 'in', [
           'range' => $this->getOptions(),
       ]);*/
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }
Ejemplo n.º 3
0
 public function init()
 {
     parent::init();
     //$this->owner->addRule($this->getAttributeName(), 'string', ['max' => 255]);
 }