Я использую виджет demos.krajee.com/widget-details/fileinput. У меня выходит проблема в том, что когда нажимаешь загрузить все нормально загружается файл на локальный комп и в базу данных, но если я перекидываю сохранение в базу данных после нажатие на сохранение, то не могу получить формат файла.
Вот код в моделе
public function upload($id)
{
if($this->validate()){
$this->file->saveAs('attachment/'.$id.'.'.$this->file->extension);
return true;
} else {return false;}
}
В контроллере
public function actionUpdate($id)
{
$model = $this->findModel($id);
if (Yii::$app->request->isPost){
$model->file = UploadedFile::getInstance($model, 'file');
if ($model->upload($id)){
//$model->img = $id.'.'.$model->file->extension; Вот сюда нормально сохраняет в базу данных
if(!$model->save()){
print_r($model->getErrors());
} else {
$model->save();
}
return '{}';
}
}
}
public function actionZakazedit($id){
$models = $this->findModel($id);
if($models->load(Yii::$app->request->post()) && $models->validate()){
$model->file = UploadedFile::getInstance($model, 'file'); // если сюда перекинуть данный код, то я не получаю формат файла. Потому что логика должна быть, если не сохраняет то должно же попасть в бд или я не прав?
if (!$models->save()){
print_r($models->getErrors());
} else {
$models->save();
}
return $this->redirect(['admin', '#' => $models->id_zakaz]);
} else {
return $this->renderAjax('_zakazedit', ['models' => $models]);
}
}