如何强制文件上传yii

时间:2012-12-27 12:58:34

标签: file file-upload yii validation

我对此有点新鲜, 我有一个带有属性file_id的模型,但它将显示为File。我应该强制要求..但是当用户上传文件时,我将文件路径存储在文件表中。并从该表中获取id并将其存储在我的模型中。

任何人都可以告诉我如何才能将文件上传强制用于创建而不是用于更新

我的文件上传代码是:

                <?php echo $form->labelEx($model,'file'); ?>
                <?php echo $form->fileField($model, 'file');?>
                <?php echo $form->error($model,'file'); ?>`

工作正常。但我需要对当前的模型强制要求。我是否需要在文件模型或当前模型中的规则函数中使其成为必需?

谢谢,

1 个答案:

答案 0 :(得分:1)

最简单的方法是在模型规则中:

array('file', 'required','on'=>'insert'),

然后只需要插入而不是更新。

另一种方法是使用before或afterValidate方法:

protected function afterValidate(){
    if($this->isNewRecord){
        if(!isset($this->file)){ //Not sure about handling files if this works.
            $this->addError("file","Not file selected.  Please choose a file to upload.");
            return false;
        }
    }
    return parent::afterValidate();
}