@twopizza

Как создавать объекты разных классов в зависимости от атрибута в Yii2?

Есть базовая модель, есть ее наследники. Нужно чтобы в зависимости от атрибута, например type создавалась новая модель класса {Type}{BaseModel}, если type указан или класса {BaseModel}, если type не указан . Как такое можно реализовать?
  • Вопрос задан
  • 321 просмотр
Пригласить эксперта
Ответы на вопрос 2
Demetriy
@Demetriy
веб и мобильная разработка
shviktor
@shviktor
Для этого нужно переопределить статический метод ActiveRecord instantiate, который отвечает за создание объекта модели
static function instantiate($row)
    {
        if ($row['type'] == self::TYPE_ARTICE)
            return new Article();

        return new static();
    }


Логика метода взята из головы, ну суть должна быть понята
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы