Здравствуйте. Есть контроллер на Yii2:
public function actionUpdate($id)
{
$model = $this->findModel($id);
$image = $model->image;
if ($model->load(Yii::$app->request->post())) {
$model->files = UploadedFile::getInstance($model, 'image');
if ($model->validate()) {
if ($model->files) {
$name = $model->files->baseName . '.' . $model->files->extension;
$path = Yii::getAlias('@webroot' . '/uploads/') . $name;
$model->files->saveAs($path);
$model->image = $name;
if($model->removeImage) {
$fileRemove = Yii::getAlias('@webroot' . '/uploads/') . $image;
if(file_exists($fileRemove)) {
unlink($fileRemove);
$model->image = '';
}
}
}
$model->save();
return $this->redirect(['view', 'id' => $model->id]);
}
}
else {
return $this->render('update', [
'model' => $model,
]);
}
}
В модели определил свойства:
public $files;
public $removeImage;
Там еще есть rules, и т.п.
Все работает, но у меня все контроллеры получаются толстые. Я хочу перенести код в модель, чтобы сделать тонкие контроллеры. Какие участки кода туда можно перенести и как вызвать в контроллере?
Нужно ли туда переносить из контроллера такое? :
Article::findOne($id)
Article::find()->where(['id' => $id])->all();