Yii2验证:图像可能不为空

时间:2017-06-26 16:26:49

标签: yii2

我使用ActiveRecord,我想上传图片。但是Yii总是说fileInput是空的。

我的模型有一个名为“image”的额外属性,规则是

[['image'], 'required', 'on' => 'new'],
[['image'], 'image', 'extensions' => 'png, jpg'],

我在控制器中使用此代码

$model = new Picture();
$model->scenario = 'new';

if ($model->load(Yii::$app->request->post()) && $model->save()) {
    $model->image = UploadedFile::getInstance($model, 'image');
    $model->image->saveAs($model->savePath($this->plugin).'/'.$model->id.'.jpg');
}

我做错了什么?

1 个答案:

答案 0 :(得分:0)

下面的代码对我有用,希望它会对你有帮助,

[['logo'], 'required', 'on' => 'create'],
[['logo'], 'file', 'skipOnError' => true,'extensions' => 'png, jpg, gif'],

$model = new Company();
$model->scenario = 'create';

 if ($model->load(Yii::$app->request->post())) {
            $logo = UploadedFile::getInstance($model, 'logo');
            if (!is_null($logo)) {
                $model->logo = $logo->name;
                if($model->validate()) {
                    $dirpath = dirname(getcwd());
                    $logo->saveAs($dirpath . '/admin/uploads/' . $logo->baseName . '.' . $logo->extension);
                    $model->save();
                    return $this->redirect(['view', 'id' => $model->Id]);
                }
            }
        }