第十四章:第18节thinkPHP框架——操作数据库(五)模型对象与数据库对象

更新于:2018-01-18 21:44:49

使用模型对象对数据表做增删查改,也可以使用数据库对象的方法(select、insert、update、delete),这节给大家演示下模型对象与数据库对象的关系。


1)


楠神打印下,db函数返回的数据库对象到底是哪个类的对象实例?


1.png


1.png


可看出楠神所说的数据库对象其实就是Query类的对象实例。


1.png


在Query类中可以看到定义的这几个方法实体(select、insert、update、delete)。


2)


我们的User模型类继承了下面的Model抽象类


1.png


Model抽象类没有抽象方法,其目的就是不让直接被实例化。类中也没有定义这几个方法实体(select、insert、update、delete)。


1.png


在Model类中定义了魔术方法“__call”,像“field、where、select”方法没有方法实体,则会执行这个魔术方法。


1.png


打印下$query、$method这两个变量


1.png


$query就是个数据库对象。看到这一步,我们应该能明白了为什么数据库对象的方法在模型对象中也可以用。


再说下楠神为什么建议大家用模型对象操作数据库?


大家可看到Model抽象类中定义了很多方法,这些方法可以帮助我们更好地做好数据验证、处理,节省了我们自己写代码的一些时间。


如果有朋友对Model抽象类的方法不感兴趣,可以让自定义的模型类继承Query类,一样可以让模型对象起到验证和处理数据的作用。


1.png


本节学习代码》》》