本文总结平时学习和工作中积累的关于如何正确使用tp5.1的一些姿势,内容取自网络并做了一些整理。
Db的正确姿势(每次使用全新的Db
静态查询)
下面是官方推荐的Db
类用法(也就是每次都是静态方法调用)
// 查询单个数据
Db::name('user')->where('id', 1)->find();
// 查询多个数据
Db::name('user')->where('id', '>', 1)->select();
// 写入新的数据
Db::name('user')->insert(['name' => '张三']);
// 更新数据
Db::name('user')->where('id', 1)->update(['name' => '李四']);
// 删除数据
Db::name('user')->delete(1);
5.1
版本每次查询后是不会清空前次(5.0
则会每次清空)的查询条件的,当你使用的是同一个数据库查询对象实例的话,查询条件是始终会保留的(也就是会导致后面的查询条件错乱),而如果你使用助手函数或者手动实例化后多次操作都是相同的对象实例。
模型的正确姿势(模型查询和创建都使用静态方法)
模型的设计其实和Db
一样,基本上不需要手动进行实例化。
// 写入新的数据
$user = User::create(['name' => '张三']);
// 更新数据
$user->update(['name' => '李四']);
// 查询单个数据
$user = User::get(1);
// 删除当前模型数据
$user->delete();
模型的实例化工作是由系统在查询或者写入数据的时候自动完成的。如果你自己手动实例化模型的话,会造成模型的重复实例化开销。
参考文章/资料地址: