Yii2 kartik FileInput-ввод пустого файла
Я использую виджет ввода файлов kartik в проекте yii2.
http://demos.krajee.com/widget-details/fileinput
все в порядке, пока не будет доступна страница обновления, где уже загруженные изображения для определенного сообщения отображаются с помощью опции "initialPreview". Предварительный просмотр работает,но когда форма отправлена, ввод файла пуст и форма не будет проверять. Poster Image (256x376) cannot be blank.
<?php
echo $form->field($model, 'posterImage')->widget(FileInput::classname(), [
'options' => [
'multiple' => true,
'accept' => 'image/*',
],
'pluginOptions' => [
'maxImageWidth' => 265,
'maxImageHeight' => 376,
'minImageWidth' => 265,
'minImageHeight' => 376,
'previewFileType' => 'image',
'allowedFileExtensions' => [
'jpg', 'jpeg'
],
'showUpload' => false,
'maxFileSize' => 200,
'maxFileCount' => 1,
'initialPreview' => [
$model->posterImage ? Html::img($model->posterImage, ['width' => '100%']) : NULL,
],
'initialPreviewConfig' => [
['url' => $model->posterImage],
],
'initialPreviewAsData' => false,
'overwriteInitial' => true,
]
]);
?>
2 ответов
можно использовать skipOnEmpty
в коде с Yii2 model
правила update
сценарии
public function rules()
{
return [
[['posterImage'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'],
];
}
@ciprian initialPreview показывать только изображение. И не показывать объект ввода файла для загрузки изображения. Поэтому, когда вы повторно загружаете, объект файла будет пустым, поэтому бросьте error