2015-06-11 98 views
0

我正在开发一个使用Yii的数据库接口。为了在创建新记录时启用文件上传,我遵循this tutorial,但是我遇到更新问题。我希望用户能够填写其他表单域,而无需再次上传文件。我在_form视图Yii - 文件域更新记录

<?php if($model->isNewRecord){ ?> 
    <div class="row"> 
     <?php echo $form->labelEx($model,'filename'); ?> 
     <?php echo $form->fileField($model,'filename'); ?> 
     <?php echo $form->error($model,'filename'); ?> 
    </div> 
    <?php }else{ ?> 
    <div class="row"> 
     <?php echo $form->textField($model,'filename', array('value'=>$model->filename)); ?>   
    </div> 
    <?php } ?> 

试过这种但是当我提交表单我得到的错误文件名不能为空。需要注意的是在我的模型我声明了以下规则:

array('filename', 'file', 'types'=>'jpg, jpeg, gif, png), 

有没有落实在文件场的存在记录uDate公司的标准方式?我如何更改我的代码? 谢谢。

回答

0

您可以在规则中指定该文件无需提交。

array('filename', 'file', 'types'=>'jpg, jpeg, gif, png', 'allowEmpty'=>true), 

allowEmpty将删除文件上传字段的非强制性条件。

如果您希望该文件在创建时强制执行,而不是在更新时执行,则可以使用此操作。

array('filename', 'file', 'types'=>'jpg, jpeg, gif, png', 'allowEmpty'=>false, 'on'=>'create'), 
array('filename', 'file', 'types'=>'jpg, jpeg, gif, png', 'allowEmpty'=>true, 'on'=>'update'), 

参考文献:http://www.yiiframework.com/forum/index.php/topic/4727-uploaded-file-allowempty-rule-only-in-a-certain-scenario/

+0

非常感谢你,它的工作! –