ThinkPHP插入数据问题

在ThinkPHP框架中,比方$m=M("user");然后$m->username='amy',$m->age='20';然后执行add方法,这条数据就会被添加到数据库... 在ThinkPHP框架中,比方$m=M("user");然后$m->username='amy',$m->age='20';然后执行add方法,这条数据就会被添加到数据库里,我想请问这个方法的实现原理是什么 展开
 我来答
ouyangqunli101
推荐于2016-11-10 · TA获得超过667个赞
知道小有建树答主
回答量:420
采纳率:100%
帮助的人:247万
展开全部

其实很简单,在你用M实例化一个Model对象的时候,所有的Model都是继承Thinkphp的Model模型类。而在model模型类中有一个魔术方法__set,如果你对面向对象的魔术方法有了解的话,就知道__set是为不存在的属性进行赋值。这样通过__set 就把这些不存在属性放到了属性为关联数组的data中,如图:

当用户调用add方法时,检测是否传入data数据,如果没有则调用刚才存在属性data中的数据。如图:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式