2015-07-23 2 views
1

Я разработчик php для новичков. Работаем в структуре yii2.0 !!. У меня есть форма для создания новой записи и обновления существующей формы. Моя проблема - это поле ввода файла для загрузки изображения в форму. Загрузка нового изображения и обновление старого изображения работают нормально, но я хочу его как: если пользователь не загружает новое изображение при обновлении, старое изображение должно быть сохранено, как мне это сделать? пожалуйста, помогите мне, Любая помощь будет действительно оценена.проблема с обновлением изображения в yii.2.0

Вот моя actionUpdate функция в контроллере

public function actionUpdate($id) 
{ 
    $model = $this->findModel($id); 
    if ($model->load(Yii::$app->request->post())) 
    { 
     $imageInstance = \yii\web\UploadedFile::getInstance($model,'Image'); 
     $randm = rand(278, 99999); 
     $fileName = "{$randm}-{$imageInstance}"; 
     $model->Image = $fileName; 
     $userId = \Yii::$app->user->identity->userId; 
     $restaurantId = \app\models\Restaurantbusiness::findOne(['userId' => 
     $userId])->restaurentID; 
     $model->restaurantBusiness_restaurentID = $restaurantId; 
     $model->delFlg = 0; 
     $model->createdDate = date('Y-m-d'); 
     $model->modifiedDate = date('Y-m-d'); 
     if($model->save()) 
     { 
      $imageInstance->saveAs('../uploads/' . $fileName); 
      return $this->redirect(['view', 'id' => $model->menuId]); 
     }else 
     { 
      return $this->render('create', [ 
      'model' => $model, 
      ]); 
     } 
    }else 
     { 
      return $this->render('update', [ 
      'model' => $model, 
      ]); 
     } 
} 
+0

вы можете проверить наличие новой записи так же, как создать или зарегистрироваться даты. напр. $ Модели-> isNewRecord? создать: обновить –

ответ

0

В основном вам нужно проверить, если поле изображения пуст или нет.

Основным примером является использование PHP троичной Оператор документация: http://php.net/manual/en/language.operators.comparison.php

Создайте переменную под названием образ, который содержит изображение, которое вы имеете в БД, если $ imageInstance пусто иначе это получить загруженное изображение

$image = (empty($imageInstance))? $model->Image : $fileName ; 

Затем присвоить переменную модели

$model->Image = $image; 
+0

спасибо, что ответили мне sir :), где я должен писать этот код ?? после $ model-> Image = $ fileName; ? –

+0

не могли бы вы переписать код мне .. !! я не получаю, где добавить код выше :( –

+0

код должен быть помещен после $ fileName и до $ model-> Image – Grischer

Смежные вопросы