我正在尝试在Yii中设置一个场景。我有一个名为File的模型,我用它来上传文件。现在,我想使用相同的模型来创建目录。目录没有文件属性,所以我在模型中设置了这样的场景:
public function rules()
{
return array(
array('file', 'file', 'types'=>'jpg, gif, png, jpeg, bmp', 'maxSize'=>1024 * 1024 * 10, 'tooLarge'=>'Bestand moet kleiner dan 10MB zijn.'),
array('file', 'file', 'on'=>'makefolder', 'allowEmpty'=>true),
);
}
在控制器中,我用$model = new File("makefolder");
触发了场景。即使是现在我总是得到'文件不能为空'的错误。我使用this page作为文档。
答案 0 :(得分:2)
只是一个猜测(因为您的原始代码对我来说似乎不错)但您可以尝试设置第一条规则对除makefolder
以外的所有方案都有效:
public function rules()
{
return array(
array('file', 'file', 'types'=>'jpg, gif, png, jpeg, bmp', 'maxSize'=>1024 * 1024 * 10, 'tooLarge'=>'Bestand moet kleiner dan 10MB zijn.', 'except'=>'makefolder'),
array('file', 'file', 'on'=>'makefolder', 'allowEmpty'=>true),
);
}
有了这些规则,错误仍然存在吗?
但上传文件并创建文件夹不是一回事,你应该使用2个区别模型!