Здравствуйте, использую виджет
FileInput для загрузки миниатюр к записи. Создание/редактирование/etc записи сделано при помощи CRUD.
Дело в том, что когда происходит подгрузка формы обновления записи - не подгружается название изображения в БД, в отличии от других полей.
Допустим, изображение и все другие поля заполнены и мы решили отредактировать поле
blocks.
1. Заходим в редактирование записи.
2. Заменяем содержимое поле blocks.
3. Сохраняем.
оскольку, поле миниатюры пустое -- сохранится null заместо текущего содержимого.
Собственно, хочу решить данную проблему. Пока из вариантов сделать отдельную функцию для обновления/добавления/удаления миниатюры, но это уже крайний вариант. Думаю, кто либо-встречался с данной проблемой и надеюсь, что сможет мне помочь.
Вот часть кода, которая отвечает за вывод формы загрузки изображения:
<?= $form->field($model, 'miniature')->widget(FileInput::classname(), [
'options' => ['accept' => 'image/*'],
]); ?>
Функция сохранения изображения в модели:
public function beforeSave($insert)
{
if ($file = UploadedFile::getInstance($this, 'miniature') ){
$dir = Yii::getAlias('@frontend').'/web/upload/';
$this->miniature = time().'.'.$file->extension;
$file->saveAs($dir.$this->miniature);
}
return parent::beforeSave($insert);
}