我在yii2项目中使用kartik文件输入小部件。
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,
]
]);
?>
答案 0 :(得分:2)
@ciprian initialPreview只显示图片。并且不显示上传图像的文件输入对象。因此,当您重新上载时,File对象将为空,因此抛出错误
答案 1 :(得分:2)
您可以对skipOnEmpty
scenarios
model
规则使用update
public function rules()
{
return [
[['posterImage'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg'],
];
}