Php 验证规则不适用于CActiveForm中的filefield

Php 验证规则不适用于CActiveForm中的filefield,php,yii,yii-extensions,yii-components,Php,Yii,Yii Extensions,Yii Components,这里我在CActiveForm中使用fileField,但在模型中,验证规则不适用于该字段。这是我的代码 模型代码 视图代码 此处所需的和文件验证规则不起作用请尝试以下控制器代码: public function actionCreate() { $model=new Uploadinfo; if(isset($_POST['Uploadinfo'])) { $model->attributes=$_POST['Uploadin

这里我在CActiveForm中使用fileField,但在模型中,验证规则不适用于该字段。这是我的代码

模型代码 视图代码
此处所需的和文件验证规则不起作用

请尝试以下控制器代码:

 public function actionCreate()
 {      
     $model=new Uploadinfo;
     if(isset($_POST['Uploadinfo']))
     {
        $model->attributes=$_POST['Uploadinfo'];
        $file=CUploadedFile::getInstance($model,'image');
        if($model->validate() && $model->save())
        {
            $model->image->saveAs('path/to/localFile');
        }
    }
    $this->render('create', array('model'=>$model));

}

你应该设置
allow_empty=>true
让它可以工作观看这篇文章:

在你看来

<?php
  $form = $this->beginWidget('CActiveForm', array(
  'id'=>'uploadinfo-form',
  'enableAjaxValidation'=>true,
  'enableClientValidation' => true,
  'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); ?>

您在哪里调用
rules()
?在验证模型之前,您调用了
die()
。要验证,您应该调用
$model->Validate()
$model->save()
 public function actionCreate()
{

    $model=new Uploadinfo;
    if(isset($_POST['Uploadinfo']))
    {
        $model->attributes=$_POST['Uploadinfo'];
        print_r($_POST['Uploadinfo']);
        $file=CUploadedFile::getInstance($model,'image');
        print_r($file->getName());
        die();
        if($model->save())
        {
            $model->image->saveAs('path/to/localFile');
            // redirect to success page
        }
    }
    $this->render('create', array('model'=>$model));

}
 public function actionCreate()
 {      
     $model=new Uploadinfo;
     if(isset($_POST['Uploadinfo']))
     {
        $model->attributes=$_POST['Uploadinfo'];
        $file=CUploadedFile::getInstance($model,'image');
        if($model->validate() && $model->save())
        {
            $model->image->saveAs('path/to/localFile');
        }
    }
    $this->render('create', array('model'=>$model));

}
array('image', 'file', 'types' => 'jpg, txt, pdf, gif, png', 'allowEmpty'=>true,'on'=>'update', 'on'=>'insert'),
<?php
  $form = $this->beginWidget('CActiveForm', array(
  'id'=>'uploadinfo-form',
  'enableAjaxValidation'=>true,
  'enableClientValidation' => true,
  'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); ?>