Yii2在保存之前从模型方法上载文件图像

Yii2在保存之前从模型方法上载文件图像,yii2,yii2-advanced-app,yii2-model,yii2-validation,Yii2,Yii2 Advanced App,Yii2 Model,Yii2 Validation,我尝试上传4张或更少的图像,ajax验证不会返回任何错误,但在提交时我得到以下信息: “错误”:{ “图像文件”:[ “请上传一个文件。” ] } 属性: 规则: return [ [['imageFiles'], 'required', 'on' => self::REPORT_STEP1], [['imageFiles'], 'file', 'skipOnEmpty' => false, 'maxFiles' => 4], ]; 保存前:

我尝试上传4张或更少的图像,ajax验证不会返回任何错误,但在提交时我得到以下信息:

“错误”:{ “图像文件”:[ “请上传一个文件。” ] }

属性:

规则:

return [
        [['imageFiles'], 'required', 'on' => self::REPORT_STEP1],
        [['imageFiles'], 'file', 'skipOnEmpty' => false, 'maxFiles' => 4],
];
保存前:

public function beforeSave($insert)
{
    $files_urls = [];
    $this->imageFiles = UploadedFile::getInstances($this, 'imageFiles');

    foreach ($this->imageFiles as $file) {
        $path = Url::to(['/uploads/reports/'], true) . Yii::$app->security->generateRandomString() . '.' . $file->extension;
        $file->saveAs($path);
        $files_urls[] = $file->name;
    }

    $this->img_url = json_encode($files_urls);
    return parent::beforeSave($insert); // TODO: Change the autogenerated stub
}
表格:



禁用AJAX验证是否有效?不,也无效
public function beforeSave($insert)
{
    $files_urls = [];
    $this->imageFiles = UploadedFile::getInstances($this, 'imageFiles');

    foreach ($this->imageFiles as $file) {
        $path = Url::to(['/uploads/reports/'], true) . Yii::$app->security->generateRandomString() . '.' . $file->extension;
        $file->saveAs($path);
        $files_urls[] = $file->name;
    }

    $this->img_url = json_encode($files_urls);
    return parent::beforeSave($insert); // TODO: Change the autogenerated stub
}
<?php $form = ActiveForm::begin([
        'enableAjaxValidation' => true,
        'options' => [
            'enctype' => 'multipart/form-data'
        ]
    ]) ?>

    <?= $form->field($model, 'imageFiles[]')->fileInput(['multiple' => true, 'accept' => 'image/*']) ?>

    <div class="form-group">
        <?= Html::submitButton('Siguiente', ['class' => 'btn btn-standard']) ?>
    </div>

    <?php ActiveForm::end() ?>