File upload Yii-使用文件字段更新记录

File upload Yii-使用文件字段更新记录,file-upload,yii,File Upload,Yii,我正在使用Yii开发一个数据库接口。为了在创建新记录时启用文件上载,我遵循了以下步骤,但我在更新时遇到了问题。我希望用户能够填写其他表单字段,而无需再次上传文件。我在\u表单视图中尝试了这个 <?php if($model->isNewRecord){ ?> <div class="row"> <?php echo $form->labelEx($model,'filename'); ?> <?php

我正在使用Yii开发一个数据库接口。为了在创建新记录时启用文件上载,我遵循了以下步骤,但我在更新时遇到了问题。我希望用户能够填写其他表单字段,而无需再次上传文件。我在
\u表单
视图中尝试了这个

<?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 } ?>
有没有一种标准的方法可以在存在文件字段的情况下实现record udate?如何更改代码?
谢谢。

您可以在规则中指定不需要提交文件

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'),
参考资料:

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