2013-03-13 84 views
0

我试图在Yii中设置场景。我有一个名为File的模型,我用它来上传文件。现在,我想使用相同的模型创建目录。目录没有,所以我的设置文件属性在这样的模式scenatio:Yii场景不起作用

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), 
); 
} 

在控制器I触发与$model = new File("makefolder");的scenatio即使是现在我总是得到错误“的文件不能为空”。我使用this page作为文档。

回答

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个不同的模型!

+0

它的工作完美!非常聪明的解决方案:) – Thijs 2013-03-13 09:50:03

+1

不错!现在我不是100%确定第二条规则是必要的。 – darkheir 2013-03-13 09:51:42

+0

你又对了,第二条规则不再必要了。谢谢! – Thijs 2013-03-13 09:58:48