@Delta01
@de1ta01 пиши, помогу с вёрсткой =)

Как загрузить и вывести вторую картинку?

Здравствуйте, с одной картинкой разобрался, как её загрузить и вывести её, но вот нужно в карточке товара так же и вторую загрузить. Вторая картинка загружается, но с выводом её беда у меня. Использую это.

Пока что все в админской части.

В контроллере карточек товара, прописал когда обновляем (пока что):
public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
			$model->img = UploadedFile::getInstance($model, 'img'); // Фото к маленькой карточки товара
			$model->big = UploadedFile::getInstance($model, 'big'); // Фото к большой карточки товара
			if ($model->img) {
				$model->upload();
			} elseif ($model->big) {
				$model->uploadBig();
			}
			
            return $this->redirect(['view', 'id' => $model->id]);
        }

        return $this->render('update', [
            'model' => $model,
        ]);
    }


В модели карточки товара, прописал поведение, задал поля и функции сохранения картинок:
public function behaviors()
    {
        return [
            'image' => [
                'class' => 'rico\yii2images\behaviors\ImageBehave',
            ]
        ];
    }

    public function rules()
    {
        return [
            // другие строки...
	    [['img'], 'file', 'extensions' => 'png, jpg'],
    	    [['big'], 'file', 'extensions' => 'png, jpg'],
        ];
    }

	public function upload() {
		if ($this->validate()) {
			$path = 'img/upload/' . $this->img->baseName . '.' . $this->img->extension; // Путь сохранения файла (папка - имя файла - расширение его).
			$this->img->saveAs($path);
			$this->attachImage($path, true);
			@unlink($path);
			return true;
		} else {
			return false;
		}
	}
	public function uploadBig() {
		if ($this->validate()) {
			$path = 'img/upload/' . $this->big->baseName . '.' . $this->big->extension; // Путь сохранения файла (папка - имя файла - расширение его).
			$this->big->saveAs($path);
			$this->attachImage($path);
			@unlink($path);
			return true;
		} else {
			return false;
		}
	}


В просмотре товара (view) и в полях где картинка должна быть:
<?php $img = $model->getImage(); $big = $model->getImage();?>

//            'image',
			[
				'attribute' => 'img',
				'value' => '<img src="../../web/img/upload/' . $img->filePath . '" class="admin__img-view">',
				'format' => 'html',
			],
//            'image_big',
			[
				'attribute' => 'big',
				'value' => '<img src="../../web/img/upload/' . $big->filePath . '" class="admin__img-view">',
				'format' => 'html',
			],


Но что-то не выходит получить вторую картинку (адрес к ней). Что я делаю не так?
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы