当前位置 主页 > 网站技术 > 代码类 >

    Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解

    栏目:代码类 时间:2019-10-27 15:05

    本文实例讲述了Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作。分享给大家供大家参考,具体如下:

    Thinkphp5.0 的使用模型Model添加数据

    使用create()方法添加数据

    $res = TestUser::create([
      'name' => 'zhao liu',
      'password' => md5(123456),
      'email' => 'zhaoliu@qq.com'
    ]);
    dump($res);
    
    

    使用save()方法添加数据

    $userModel = new TestUser;
    $userModel->name = 'ya ya';
    $userModel->email = 'yaya@139.com';
    $res = $userModel->save();
    dump($res);//影响的行数
    dump($userModel->id);//新纪录的id 
    
    

    注意:使用allowField(true)方法,传递不存在的字段时不会报错

    示例:

    $userModel = new TestUser;
    $userModel->name = 'hei hei';
    $userModel->email = 'heihei@139.com';
    $userModel->yes = '不存在字段';
    $res = $userModel->allowField(true)->save();
    dump($res);//影响的行数
    dump($userModel->id);//新纪录的id 

    使用saveAll()方法添加多条数据

    $userModel = new TestUser;
    $data = array(
      ['name'=>'ga ga','email'=>'gaga@sina.com'],
      ['name'=>'you you','email'=>'youyou@163.com']
    );
    //返回结果是个多维的数组
    $res = $userModel->saveAll($data);
    //如果需要得到添加的数据的每个id,需要遍历
    foreach($res as $v){
      dump($v->id);
    }
    
    

    Thinkphp5.0 的使用模型Model更新数据

    (1)使用update()方法进行更新数据

    一、where条件写在更新数据中

    (这种情况更新的数据,必须含主键)

    $res = User::update([
      'id' => 2,
      'email' => '121@qq.com'
    ]);
    //返回修改之后model的整个对象信息
    dump($res);
    
    

    二、where条件使用update()的第二个参数,传递数组

    $res = User::update([
      'email' => '123@qq.com'
    ],['id'=>2]);
    //返回修改之后model的整个对象信息
    dump($res);
    
    

    三、where条件使用update()的第二个参数,传递闭包函数

    $res = User::update([
      'email' => '555@qq.com'
    ],function($query){
      $query->where(['id'=>2]);
    });
    //返回修改之后model的整个对象信息
    dump($res);
    
    

    四、使用where条件

    $res = User::where('id','=',2)->update([
      'email'=>'666@qq.com'
    ]);
    //返回影响的行数
    dump($res);
    
    

    (2)使用save()方法

    方式一:

    $model = User::get(2);
    $model->email = '777@qq.com';
    $res = $model->save();
    //返回影响的行数
    dump($res);
    
    

    方式二:

    $model = new User();
    $res2 = $model->save([
      'email' => '999@qq.com'
    ],['id'=>2]);
    //返回影响的行数
    dump($res2);
    
    

    方式三:

    $model = new User();
    $res = $model->save([
      'email' => '000@qq.com'
    ],function($query){
      $query->where(['id'=>2]);
    });
    //返回影响的行数
    dump($res);
    
    

    使用saveAll()方法更新多个数据:

    $model = new User();
    $res = $model->saveAll([
      ['id' => 2,'email' => '122@qq.com'],
      ['id' => 3,'email' => '123@qq.com'],
      ['id' => 4,'email' => '124@qq.com']
    ]);
    //返回数组
    dump($res);