0

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

谁能告诉我如何使 文件上传强制创建而不是更新

我的文件上传代码是:

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

它工作正常。但我需要对当前模型强制执行此操作。我需要在文件模型或当前模型的规则功能中使其成为必需吗?

谢谢,

4

1 回答 1

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();
}
于 2012-12-27T16:51:11.637 回答