当前位置:首页 > CMS教程 > Thinkphp > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-01 12:29:15 浏览: 评论:0 

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

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

使用create()方法添加数据

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

使用save()方法添加数据

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

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

示例:

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

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

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

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

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

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

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

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

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

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

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

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

四、使用where条件

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

(2)使用save()方法

方式一:

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

方式二:

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

方式三:

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

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

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

Thinkphp5.0 的使用模型Model删除数据

一、使用destory()删除数据

  1. //删除id为3的记录 
  2. $res = User::destroy(3); 
  3. //返回影响的行数 
  4. dump($res); 

destory()的参数可以是主键、数组条件、闭包函数。

二、使用delete()删除数据

  1. //删除id为3的记录 
  2. $model = User::get(3); 
  3. $res = $model->delete(); 
  4. //返回影响的行数 
  5. dump($res); 

三、delete()和where()

  1. //删除id为4的记录 
  2. $res = User::where('id','=',4)->delete(); 
  3. //返回影响的行数 
  4. dump($res);

Tags: Thinkphp5 0 Model添加

分享到: