Здравствуйте, с одной картинкой разобрался, как её загрузить и вывести её, но вот нужно в карточке товара так же и вторую загрузить. Вторая картинка загружается, но с выводом её беда у меня. Использую
это.
Пока что все в админской части.
В контроллере карточек товара, прописал когда обновляем (пока что):
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',
],
Но что-то не выходит получить вторую картинку (адрес к ней). Что я делаю не так?