Ivan Karabadzhak А я вот взял и извратил вашу концепцию
Я создал вторую модель, которую наследовал от первой и в ней переопределил rules();
И получилось вот так:
public function actionUpdate($id) {
$model = new Manufacturer();
$model = $model->findOne($id);
if (Yii::$app->request->post()) {
$model->load(Yii::$app->request->post());
$model->image1 = UploadedFile::getInstance($model, 'image1');
if ( $model->image1 ) {
$dir = $_SERVER['DOCUMENT_ROOT'] . '/upload/manufacturers/';
if ( $model->upload($dir, $model->image1, $id) ) { /* set flash - file update is good */ }
// Наследуем модель с "мягкими" rules
$model = new ManufacturerDB();
$model = $model->findOne($id);
$model->load(Yii::$app->request->post());
$model->setAttribute('image1', $id . '.jpg');
} else {
unset($model->image1);
}
$model->save();
return $this->redirect(['view', 'id' => $id]);
}
return $this->render('update', [
'model' => $model,
]);
}
Соответствует это вашей концепции?