@hollanditkzn

Как поставить сохранение файла после нажатие на сохранение?

Я использую виджет 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]);
        }
    }
  • Вопрос задан
  • 198 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы