Yii - 使用文件字段更新记录
Yii - update record with filefield
我正在使用 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),
是否有一种标准方法可以在存在文件字段的情况下实现记录更新?如何更改我的代码?
谢谢。
您可以在规则中指定不需要提交文件。
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'),
我正在使用 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),
是否有一种标准方法可以在存在文件字段的情况下实现记录更新?如何更改我的代码? 谢谢。
您可以在规则中指定不需要提交文件。
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'),