Использую виджет загрузки:
https://github.com/kartik-v/yii2-widget-fileinput
Уже мозг закипает. Не могу понять как сделать его обязательным полем. Использую activeForm с аjax валидацией.
Вот вью:
$form->field($forma,'userimg')->widget(FileInput::classname(),[
'options' => ['accept' => 'image/*'],
'pluginOptions' => [
'allowedFileExtensions'=>['jpg', 'gif', 'png', 'bmp'],
'previewFileType' => 'image',
'showRemove' => false,
'showUpload' => false,
'browseClass' => 'btn btn-primary btn-block',
'browseIcon' => '<i class="glyphicon glyphicon-camera"></i> ',
'browseLabel' => Yii::t('knopki', 'upload'),
'overwriteInitial'=>false,
]])
вот валидация:
['userimg', 'image', 'extensions' => 'png,jpg,jpeg', 'skipOnEmpty' => false, 'maxSize'=>5000000, 'minSize'=>100000, 'uploadRequired'=>Yii::t('order', 'noImage')],
Получается если 'skipOnEmpty' => false - тогда всегда ошибка, что нет фото. А если true, то соответственно поле не является обязательным (а надо).
При самбите есть $_files и все отлично загружается, но вот 'userimg' - пуст.
Как решить проблему? Может виджет не так как то настроил? Или можно в моделе в правилах как-то проверять наличие $_FILE? Но при ajax валидации он не передается. Уже 4-й час брожу по кругу. Буду рад любым идеям, советам и т.д.