美文网首页
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