求助大神解答,图片和其它字段一起上传的验证问题 [ 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