私は yii が初めてなので、このチュートリアルに従っていました。
写真をアップロードしようとすると、そうでない場合でも空のフィールドが報告されます。
私の _form ビュー:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'picture-form',
    'enableAjaxValidation'=>false,
    'htmlOptions' => array('enctype' => 'multipart/form-data'),
     )); 
?>
...
<div class="row">
  <?php echo $form->labelEx($model,'path_to'); ?>
  <?php echo $form->fileField($model,'path_to'); ?>
  <?php echo $form->error($model,'path_to'); ?>
</div>
...
  <?php $this->endWidget(); ?>
</div><!-- form -->
ここに私のアクションメソッドがあります:
public function actionCreate()
{
  $model=new Picture;
  if(isset($_POST['Picture']))
  {
    $model->attributes=$_POST['Picture'];
    $model->picture=CUploadedFile::getInstance($model,'path_to');
    if($model->save()){
      $log->lwrite('in save'.$model->picture);
      $model->picture->saveAs(Yii::app()->basePath.'/../images/'.$model->picture);
      $this->redirect(array('view','id'=>$model->id));
      $log->lclose();
    }
  }
$this->render('create',array('model'=>$model,));
}
print_r($_FILES) するとそこにあるはずのものがすべて表示されます print_r($_POST) と、フィールド 'path_to' は空で、バリデーターはおそらくそれを選択しています。
私はおそらくここで何かが欠けていて、無知です。
update1: 属性が $_POST から読み取られるのではなく、yii がファイル入力と同じ名前の隠しフィールドを使用していることに気付きました。これにより、エンジンが空の隠しフィールドを読み取っています。ユーザーが新しい画像を入力していないときに、非表示のフィールドが更新用に存在することを理解しています。写真のアップロードを行う最良の方法は何かアドバイスできますか?
update2: モデルコード: class Picture extends CActiveRecord {
    public $picture;
... 
    public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('path_to, page_id', 'required'),
            array('page_id', 'numerical', 'integerOnly'=>true),
            array('alt_text', 'safe'),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array('id, alt_text, path_to, page_id', 'safe', 'on'=>'search'),
            //array('path_to', 'file','types'=>'jpg, gif, png', 'allowEmpty'=>true, 'on'=>'update'),
            //array('path_to', 'length', 'max'=>255, 'on'=>'insert,update'),
            array('path_to', 'unsafe'),
        );
    }
...
一番!