美文网首页
thinkphp 5.1 数据库操作基本规程

thinkphp 5.1 数据库操作基本规程

作者: Success85 | 来源:发表于2018-11-07 13:11 被阅读37次

本人喜欢使用模型操作数据库,很多工具比如修改器、获取器、模型事件等很方便。同时发现使用静态方法,尽量不要使用助手函数,下列方法都可以使用修改器、获取器、模型事件等。官方给的各种新增、修改数据的方法太多了,那么接下来就总结一下以后自己用thinkphp 5.1 数据库操作的基本硬性要求:
首先:use 模型类。

use app\common\model\User;

插入数据:使用模型的静态方法插入数据:

// 单条数据
User::create(['username' => 'lilei', 'password' => '123456']);  //返回模型的对象实例

// 多条数据:
// saveAll()  不是静态方法,只能通过实例化模型或者助手函数插入了。
// 比insertAll插入数据速度快。
// 助手函数
model('user')->saveAll($data);
// 实例化模型
$user = new User();
$user->saveAll($data); // 返回模型的对象实例
// 上述两种方法都比较不舒服,使用频率或者数据量不大的话当然使用静态方法也可以的
// 静态 insertAll() 方法。
User::insertAll($data);  // 推荐 返回插入条数

上述插入分析见:https://www.jianshu.com/p/4662d54630ab

修改数据:使用模型的静态方法

// 方法1:使用模型类的静态方法update   ----  ///// 无法使用模型事件 ///////
User::update(['user_id' => 1, 'username' => 'lilei', 'password' => '123456']);  //返回模型的对象实例
// 方法2:先查询后更新   官方的最佳使用方式
$user = User::get(1);
$user->password = '321654';
$user->save();  // 返回bool

总结:

1、模型的作用主要是模型混合和模型关联。
2、伪模型:模型中封装的方法直接使用Db的静态调用,该方式不可取
3、模型的要素:继承/think/model、可对应多个数据表、与数据表名可以不一致、使用空模型也不用Db、不建议用数据库前缀。
4、模型功能:数据处理逻辑、业务逻辑
5、模型可以单独设置数据库的连接,可以将不同数据库中的数据表在一个模型中统一管理
6、可以在controller中使用模型对象注入的方式使用模型
7、模型也可以静态调用查询构造器中的所有方法
8、查询、新增应该使用的是静态调用,更新删除才应该用动态调用(模型对象->方法)
9、模型内部应该避免内部查询自己的数据(查询范围除外),更不建议使用table。但是模型内部可以静态查询其他模型的。

相关文章

网友评论

      本文标题:thinkphp 5.1 数据库操作基本规程

      本文链接:https://www.haomeiwen.com/subject/qaamxqtx.html