【问题标题】:Yii scenario not workingYii 场景不工作
【发布时间】:2013-03-13 08:46:53
【问题描述】:

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

【问题讨论】:

    标签: php validation yii scenarios


    【解决方案1】:

    只是一个猜测(因为您的原始代码对我来说似乎很好),但您可以尝试设置第一条规则对除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),
      );
    }
    

    有了这些规则,错误还在吗?

    但是上传文件和创建文件夹不是一回事,你应该使用两个不同的模型!

    【讨论】:

    • 不错!现在我不能 100% 确定第二条规则是必要的。
    • 你又是对的,不再需要第二条规则了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多