Yii2. Добавление атрибута и правила динамически в модель

Я пишу виджет и хочу, чтобы пользователь не добавлял код в свою модель (я знаю, что было бы проще, но использовать его для изучения чего-то нового).

Знаете ли вы, можно ли добавить в модель атрибут (которого нет в вашей базе данных, поэтому он будет виртуальным) и добавить правило для этого атрибута? У вас нет доступа для изменения кода модели.

Я знаю, правила это массив. В прошлом я объединял правила из родительского класса, используя array_merge. Можно ли это сделать внешне? Есть ли у Yii2 метод для этого?

Идея состоит в том, чтобы расширить модель, предоставленную пользователем, с помощью «модели» внутри моего виджета и использовать там:

    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);
    }

Но если я расширю его, когда я использую эту модель в ActiveForm, например, для флажка, он будет использовать мою "CustomModel", поэтому я хочу избежать этого. Есть другие идеи? Как это сделать, не расширяя свою модель?

Ответы на вопрос(1)

Ваш ответ на вопрос