模型的主要功能包括数据处理和业务逻辑,而这些都离不开数据的CURD操作,因此我们首先来谈下数据的CURD操作,在掌握了数据库Db类的用法后,模型的CURD操作就会很容易理解,因为本质上模型的CURD操作最终调用的还是Db类的操作,区别在于使用了ActiveRecord模式和单独做了一层封装而已,我们来看下两种方式CURD操作用法的简单对比(其中模型会给出动态和静态两种实现方法,分别对应不同的场景)。
save方法返回影响的记录数,而update方法返回的则是模型的对象实例。模型和Db更新方法的最大区别是模型的更新方法只会更新有变化的数据,没有变化的数据是不会更新到数据库的,如果所有数据都没变化,那么根本就不会去执行数据库的更新操作。所以你其实会发现后面的模型更新方法其实根本没执行(因为模型的更新数据和原有数据是一样的,没任何变化,当然你有对数据作了自动操作另当别论),但你更改name或者email属性的值的话,就会发现执行了更新操作。
更新操作用法小结:
方法作用返回值save更新数据影响的记录数update更新数据(静态)返回模型对象实例