求助大神解答,图片和其它字段一起上传的验证问题 [ 2.0 版本 ]
问题:主要的错误发生在validate()上面,怎么样才能使图片的字段验证合法;而不显示为字段为空;
描述:实际中上传图片肯定和表单其他字段混合上传的,比如title、content等
1.我照着文档加入了image字段的验证,model里面的rule规则如下:
public function rules()
{
    return [
        [['username','password','email'],'required'],
        ['username','string','length'=>[2,10]],
        ['password','string','max'=>20],
        ['email','email'],
        ['brief','string','length'=>[10,255]],
        [['image'], 'file', 'skipOnEmpty' => false, 'extensions' => 'png, jpg'],
    ];
}
2.随后我在视图view中进行了渲染:
<?php $form=ActiveForm::begin()?>
    <?= $form->field($model,'username')?>
    <?= $form->field($model,'password')?>
    <?= $form->field($model,'image')->fileInput()?>
    <?= $form->field($model,'email')?>
    <?= $form->field($model,'brief')?>
    <?php echo \yii\helpers\Html::submitButton('修改',['class'=>'btn btn-primary'])?>
<?php ActiveForm::end()?>
3.我在控制器中将post过来的数据传递过去验证;
$model = new MessageForm();
if (\Yii::$app->request->isPost) {
    $model->image = UploadedFile::getInstance($model, 'image');
   
    if ($model->load(Yii::$app->request->post()) && $model->validate()) {
        $this->redirect(['site/index'])
    }
}
return $this->render('info', [
        'model' => $model,
]);
我输入之后还是显示:并且上传失败
![]()
但是当我去掉rule里面图片的的 'skipOnEmpty' => false 时候,图片上传成功;
最后我将打印POST里面的内容,发现image字段为空,好诡异,不知道该怎么解决了。哈哈
共 0 个回答
没有找到数据。
堂吉诃德 南极冰岛
            注册时间:2016-10-31
最后登录:2017-11-27
在线时长:56小时51分
    最后登录:2017-11-27
在线时长:56小时51分
- 粉丝6
 - 金钱2185
 - 威望0
 - 积分2745