• ThinkPHP5.0 模型新增操作


    一、新增数据操作如下:

    1.第一种是实例化模型对象后赋值并保存:

    $user           = new User;
    $user->name     = 'thinkphp';
    $user->email    = 'thinkphp@qq.com';
    $user->save();

    2.第二种使用data方法批量赋值:

    $user = new User;
    $user->data([
        'name'  =>  'thinkphp',
        'email' =>  'thinkphp@qq.com'
    ]);
    $user->save();

    3.直接在实例化的时候传入数据

    $user = new User([
        'name'  =>  'thinkphp',
        'email' =>  'thinkphp@qq.com'
    ]);
    $user->save();

    4.过滤非数据表字段的数据

    $user = new User($_POST);
    // 过滤post数组中的非数据表字段数据
    $user->allowField(true)->save();

    5.通过外部提交赋值给模型,并且希望指定某些字段写入

    $user = new User($_POST);
    // post数组中只有name和email字段会写入
    $user->allowField(['name','email'])->save();

    6.获取自增ID

    $user           = new User;
    $user->name     = 'thinkphp';
    $user->email    = 'thinkphp@qq.com';
    $user->save();
    // 获取自增ID
    echo $user->id;
    //如果自增ID不是id而是u_id等,那么获取自增ID应该是u_id
    echo $user->u_id;

    7.添加多条数据

    $user           = new User;
    $user->name     = 'thinkphp';
    $user->email    = 'thinkphp@qq.com';
    $user->save();
    $user->name     = 'onethink';
    $user->email    = 'onethink@qq.com';
    // 第二次开始必须使用下面的方式新增
    $user->isUpdate(false)->save();

    8.支持批量新增,可以使用

    $user = new User;
    $list = [
        ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
        ['name'=>'onethink','email'=>'onethink@qq.com']
    ];
    $user->saveAll($list);

    9.saveAll方法新增数据默认会自动识别数据是需要新增还是更新操作,当数据中存在主键的时候会认为是更新操作,如果你需要带主键数据批量新增,那么要如下设置参数

    $user = new User;
    $list = [
        ['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'],
        ['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com'],
    ];
    $user->saveAll($list, false);

    10.通过遍历批量新增数据,可以参考下面的方法:

    $user = new User;
    $list = [
        ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
        ['name'=>'onethink','email'=>'onethink@qq.com']
    ];
    foreach($list as $data){
        $user->data($data,true)->isUpdate(false)->save();
    }

    11.静态调用create方法创建并写入

    $user = User::create([
        'name'  =>  'thinkphp',
        'email' =>  'thinkphp@qq.com'
    ]);
    echo $user->name;
    echo $user->email;
    echo $user->id; // 获取自增ID

    12.系统提供了model助手函数用于快速实例化模型,并且使用单例实现,例如:

    // 使用model助手函数实例化User模型
    $user = model('User');
    // 模型对象赋值
    $user->data([
        'name'  =>  'thinkphp',
        'email' =>  'thinkphp@qq.com'
    ]);
    $user->save();

    13.进行批量新增

    $user = model('User');
    // 批量新增
    $list = [
        ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
        ['name'=>'onethink','email'=>'onethink@qq.com']
    ];
    $user->saveAll($list);
  • 相关阅读:
    hdu 3790 最短路径问题
    hdu 2112 HDU Today
    最短路问题 以hdu1874为例
    hdu 1690 Bus System Floyd
    hdu 2066 一个人的旅行
    hdu 2680 Choose the best route
    hdu 1596 find the safest road
    hdu 1869 六度分离
    hdu 3339 In Action
    序列化和反序列化
  • 原文地址:https://www.cnblogs.com/520fyl/p/7126993.html
Copyright © 2020-2023  润新知