开发的时候添加和编辑写在了一个方法里面,上传图片添加的时候需要验证为空,编辑的时候不需要,这时候yii的场景值能够解决这个问题:
控制器中
$model = new NewsForm(); $model->scenario = 'add';//指定场景值
模型中
//接下来是model的写法 public function rules() { return [ [['img'], 'file'], [['img'],'required','message'=>'{attribute}不能为空','on' => ['add']],//此处指定只有场景为add时才验证 [['title','content','source','abstract'],'required','message'=>'{attribute}不能为空'], ['abstract','string','max'=>5,'min'=>20, 'tooShort'=>'长度需大于5个字','tooLong'=>'长度不能大于20个字'], ]; }