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