【问题标题】:Yii - update record with filefieldYii - 使用文件字段更新记录
【发布时间】:2015-06-11 14:43:05
【问题描述】:

我正在使用 Yii 开发一个数据库接口。我关注了this tutorial,以便在创建新记录时启用文件上传,但我在更新时遇到了问题。我希望用户能够填写其他表单字段,而无需再次上传文件。我在_form 视图中试过这个

<?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),

在存在文件字段的情况下,是否有实现记录更新的标准方法?如何更改我的代码? 谢谢。

【问题讨论】:

    标签: file-upload yii


    【解决方案1】:

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

    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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2012-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多