zoukankan      html  css  js  c++  java
  • ThinkPHP5.0 模型更新操作

    1、在取出数据后,更改字段内容后更新数据

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

    2、直接带更新条件来更新数据

    $user = new User;
    // save方法第二个参数为更新条件
    $user->save([
        'name'  => 'thinkphp',
        'email' => 'thinkphp@qq.com'
    ],['id' => 1]);

    3、过滤非数据表字段的数据

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

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

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

    5、saveAll方法批量更新数据

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

    7、通过遍历批量更新数据

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

    8、通过数据库类更新数据(两种形式)

    $user = new User;
    $user->where('id', 1)
        ->update(['name' => 'thinkphp']);
    
    
    $user = new User;
    $user->update(['id' => 1, 'name' => 'thinkphp']);

    9、静态方法直接更新数据(两种形式)

    //第一种形式
    User::where('id', 1) ->update(['name' => 'thinkphp']);
    
    //第二种形式
    User::update(['id' => 1, 'name' => 'thinkphp']);

    10、闭包函数使用更复杂的更新条件

    $user = new User;
    $user->save(['name' => 'thinkphp'],function($query){
        // 更新status值为1 并且id大于10的数据
        $query->where('status', 1)->where('id', '>', 10);
    });

    11、自动识别主键更新

    // 实例化模型
    $user = new User;
    // 显式指定更新数据操作
    $user->isUpdate(true)->save(['id' => 1, 'name' => 'thinkphp']);
  • 相关阅读:
    BNU 51002 BQG's Complexity Analysis
    BNU OJ 51003 BQG's Confusing Sequence
    BNU OJ 51000 BQG's Random String
    BNU OJ 50999 BQG's Approaching Deadline
    BNU OJ 50998 BQG's Messy Code
    BNU OJ 50997 BQG's Programming Contest
    CodeForces 609D Gadgets for dollars and pounds
    CodeForces 609C Load Balancing
    CodeForces 609B The Best Gift
    CodeForces 609A USB Flash Drives
  • 原文地址:https://www.cnblogs.com/520fyl/p/7127278.html
Copyright © 2011-2022 走看看