/**
  * @inheritdoc
  */
 public function run()
 {
     $this->registerClientScript();
     if ($this->hasModel()) {
         echo Html::activeInput($this->type, $this->model, $this->attribute, $this->options);
     } else {
         echo Html::input($this->type, $this->name, $this->value, $this->options);
     }
 }
 /**
  * Renders an input tag.
  * @param string $type the input type (e.g. 'text', 'password')
  * @param array $options the tag options in terms of name-value pairs. These will be rendered as
  * the attributes of the resulting tag. The values will be HTML-encoded using [[Html::encode()]].
  *
  * If you set a custom `id` for the input element, you may need to adjust the [[$selectors]] accordingly.
  *
  * @return $this the field object itself
  */
 public function input($type, $options = [])
 {
     $options = array_merge($this->inputOptions, $options);
     $this->adjustLabelFor($options);
     $this->parts['{input}'] = Html::activeInput($type, $this->model, $this->attribute, $options);
     return $this;
 }