Home >php教程 >PHP开发 >ThinkPHP模型类中不能调用save方法

ThinkPHP模型类中不能调用save方法

WBOY
WBOYOriginal
2016-06-07 17:23:381769browse

这些天由于工作的需要,在WBlog3.12版本的基础上做个会员模块。


在测试更新会员头像时,发现了ThinkPHP的一个问题:在模块的模型类,无法执行更新查询语句!
    下面是更新数据的代码片断,上传头像成功,$uploadList[0]['savename']为更新头像时成功获取的图片的保存名,调试时已经确保 $data['thumb'] 的值不为空。代码如下:

class AttachModel extends Model{ 
  ... 
     $data['thumb']          = $uploadList[0]['savename'];//获取的更新头像的保存名称 
     $list   = M('Member')->where(array('id'=>1))->save($data);  
   }

上面的代码似乎没有错误,我也这样认为,可是也因为这种貌似没有错误的代码,让我花了好多时间在其它代码中寻找错误,到头来问题偏偏出现在上面的代码片段中--把它放到控制器中问题就解决了。呵呵,好痛的测试结果啊!
经测试,在模型类中添加数据是没问题的,即上面的代码可以这样执行  

class AttachModel extends Model{ 
  ... 
     $data['thumb']  = $uploadList[0]['savename'];//获取的更新头像的保存名称 
     $list   = M('Member')->where(array('id'=>1))->add($data); //这里把save($data)改成add($data) 
  ... 
   }

我查阅了一下ThinkPHP核心包的模型类,类中包函着add和save两个方法,至于在模块的模型类中无法执行save,我仍在困惑着,但至少不会再把save写在模型类中。


   

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn