@robin23

Пропадает изображение при обновлении записи, как правильно сделать?

Доброго дня!
При обновлении записи теряется название файла из бд. Пробую сделать так - не работает, что я упускаю?

public function loadImages($images)
{
$uploadPath = Yii::getAlias('@frontend') .'/web/uploads';
$dir = $uploadPath.'/portfolio/';
foreach ($images as $index => $image) {
if($picImg = UploadedFile::getInstance($image, "[$index]" . 'image')){
$file_name = uniqid().'_'.$picImg->baseName.'.'.$picImg->extension;
$image->image = $file_name;
$picImg->saveAs($dir.$image->image);
Image::thumbnail($dir.$file_name,'397', '402')->save(Yii::getAlias($dir.'thumb/' . $file_name), ['quality' => 75]);
}else{
$image->image = self::getOldAttribute('image');
}
$image->save(false);
}
}
  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ответы на вопрос 1
@robin23 Автор вопроса
В общем всё до чего додумался, это сделать так:
public function loadImages($images)
  {
    $uploadPath = Yii::getAlias('@frontend') .'/web/uploads';
    $dir = $uploadPath.'/portfolio/';
    foreach ($images as $index => $image) {
      $model = PortfolioImages::find()->where(['id' => $image->id])->one();
     if($picImg = UploadedFile::getInstance($image, "[$index]" . 'image')){
        $file_name = uniqid().'_'.$picImg->baseName.'.'.$picImg->extension;
        $image->image = $file_name;
        $picImg->saveAs($dir.$image->image);
        Image::thumbnail($dir.$file_name,'397', '402')->save(Yii::getAlias($dir.'thumb/' . $file_name), ['quality' => 75]);
      }else{
       $image->image = $model->image;
      }
      $image->save(false);
    }
  }

Вроде работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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