Yii场景不起作用

时间:2013-03-13 08:46:53

标签: php validation yii scenarios

我正在尝试在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作为文档。

1 个答案:

答案 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个区别模型!