Мне нужно изменить класс модели в моем проекте yii2. Из-за изменения базы данных, все запросы класса модели должны быть преобразованы в соответствии с в новую таблицу базы данных. Но я хочу старую конфигурацию db также потому, что если что-то пошло не так в моем новом db, то я могу легко переместиться ко всему запрос класса модели (переход на другой ресурс). Поэтому я хочу старый класс модели и переопределить его с помощью новой функции класса модели, основанной на константе. В константе, если я установлен старый (0), затем выберите старый запрос класса db или новый (1), а затем переопределите модель с новым запросом. Как это возможно с использованием концепции OOPS, пожалуйста, help.Yii переопределение модели на основе константы
class ModelClass extends ActiveRecord
{
public static function tableName()
{
return 'table1';
}
public function getData($limit = '5', $offset = '0')
{
//
}
}
Модель новой модели.
class NewModelClass extends ModelClass
{
public static function tableName()
{
return 'table2';
}
public static function getDb()
{
return \Yii::$app->get('newDb'); // second database
}
public function getData($limit = '5', $offset = '0')
{
//
}
}
В классе контроллера я использую родительский класс модели в пространстве имен, как:
use api\modules\v1\models\ModelClass;
Для вызова функции модели в действии:
$objModel = new ModelClass(); // call parent class
$objModel->getData();
Определение константы в Params:
'model' => '1', // 1 means new or 0 means old
Затем, как переключаться между моделью, не устанавливая, если еще условия в везде контроллера. Нужно выполнить базовую проверку 0/1 для переключения между классами модели.
Если вы не хотите реализовывать его в контроллере, вы можете сделать это в модели –