code: public function getClientOptions($model, $attribute)
      {
          $label = $model->getAttributeLabel($attribute);
  
          $options = [
              'message' => $this->formatMessage($this->message, [
                  'attribute' => $label,
              ]),
          ];
  
          if ($this->min !== null) {
              $options['min'] = $this->min;
              $options['tooShort'] = $this->formatMessage($this->tooShort, [
                  'attribute' => $label,
                  'min' => $this->min,
              ]);
          }
          if ($this->max !== null) {
              $options['max'] = $this->max;
              $options['tooLong'] = $this->formatMessage($this->tooLong, [
                  'attribute' => $label,
                  'max' => $this->max,
              ]);
          }
          if ($this->length !== null) {
              $options['is'] = $this->length;
              $options['notEqual'] = $this->formatMessage($this->notEqual, [
                  'attribute' => $label,
                  'length' => $this->length,
              ]);
          }
          if ($this->skipOnEmpty) {
              $options['skipOnEmpty'] = 1;
          }
  
          return $options;
      }
docs: {@inheritdoc}