Yii2. Incluindo atributo e regra dinamicamente no modelo

Estou escrevendo um widget e quero evitar que o usuário adicione código ao modelo (sei que seria mais fácil, mas usá-lo para aprender algo novo).

Você sabe se é possível adicionar um atributo (que não está no seu banco de dados, portanto será virtual) a um modelo e adicionar uma regra para esse atributo ?. Você não tem acesso para alterar esse código de modelo.

Eu sei que regras é uma matriz. No passado, mesclei regras da classe pai usando array_merge. Isso pode ser feito externamente? O Yii2 tem um método para isso?

Uma idéia é estender o modelo fornecido pelo usuário com um "modelo" dentro do meu widget e usar:

    public function init() {
      /*Since it is extended this not even would be necessary, 
      I could declare the attribute as usual*/

      $attribute = "categories";
      $this->{$attribute} = null; //To create attribute on the fly

      parent::init();
    }

    public function rules() {
      $rules = [...];

      //Then here merge parent rules with mine.
      return array_merge(parent::rules, $rules);
    }

Mas se eu estendê-lo, quando eu usar esse modelo em um ActiveForm, por exemplo, para uma caixa de seleção, ele usará meu "CustomModel", então quero evitar isso. Alguma outra ideia? Como fazer isso sem estender seu modelo?

questionAnswers(1)

yourAnswerToTheQuestion