2015-04-09 17:25:16 2891次浏览 2条回答 0 悬赏 5 金钱

我描述大概的情景:我使用yii中内置的CUploadedFile上传文件后,重新上传图片时,由于上传文件为空,所以我把原来的字段值重新赋回去,表示不修改原来的图片,但是在调用save()方法保存修改时,之前被赋值的图片字段居然被清空了,经过我排查后,最后锁定问题来自于调用save()方法时默认触发validate()方法进行规则验证()后,之前被赋值的图片字段居然变成了空值(注意赋值操作是在save操作之前),莫名其妙被清空掉了,不知道大家有没有遇到过这样的问题?

最佳答案

  • RichardTian 发布于 2015-04-10 11:30 举报

    如果你不想改掉这个字段的话,可以把它unset掉

    1 条回复
    回复于 2015-04-13 15:31 回复

    谢谢你的解答,给了我新的思路。

  • 回答于 2015-04-10 11:30 举报

    那应该是你没有判断是否为空,你將空的数据也传入了数据库,那数据库就帮你保存啦

    1 条回复
    回复于 2015-04-10 15:04 回复

    因为我允许用户可以只更新其他字段,而不更新原来的图片字段;在执行$model->attributes=$_POST['User']操作之后,旧值被清空了,所以我又重新把旧值赋回去了,但是在执行$this->validate()方法后又被清空了,这才是我所疑惑的。

您需要登录后才可以回答。登录 | 立即注册
runong
见习主管

runong

注册时间:2015-03-30
最后登录:2015-05-06
在线时长:8小时25分
  • 粉丝0
  • 金钱200
  • 威望0
  • 积分280

热门问题