博主信息
博文 24
粉丝 0
评论 2
访问量 33590
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
ThinkPHP5使用模型新增数据
路雲萧的博客
原创
1687人浏览过

一、create()静态方法:新增单条记录

//1.参数为关联数组,其键值与要添加的表中字段对应
$res = Staff::create([
        'name'=>'乔峰',
        'salary'=>4090
      ]);
//2.传入第二个参数true,仅添加表中存在的字段
$res = Staff::create([
        'name'=>'乔峰',
        'salary'=>4090,
        'level' => 2  //表中并无level字段
      ],true); //如果不加true参数,将报错并拒绝执行
      
//3.如仅更新指定字段,还可传入第三个参数(允许更新的字段名称数组)
$res = Staff::create([
        'name'=>'阿朱',
        'salary'=>7800,
        'age'=>23,
        'level'=>1  //表中无此字段,true参数可将它屏蔽
      ],true,['name','age']);  //salary字段值不会写入表中

二、save()方法:新增单条记录

主要分为二步:

生成模型对象,并以属性方式创建要新增的数据;

save()方法可将当前模型对象属性当作字段,并写入表中,返回受影响记录数

//1.初始化模型对象方式来新增数据
$staff = new Staff();      //获取模型对象
$staff -> name = "段公子"; //给模型对象name属性赋值
$staff -> age = 24;        //给模型对象age属性赋值
$staff -> salary = 8900;   //给模型对象salary属性赋值
$res = $staff -> save();   //将数据写入表中,返回受影响记录数
dump($res);                //输出:  int(1)

//2.save([字段列表])传参方式新增
$staff = new Staff();
$res=$staff -> save([
  'name' => '虚竹',
  'age' => 30,
  'salary' => 5400
]);
dump($res);

//3. allowField(true):过滤非表中字段
$staff = new Staff();
$res=$staff -> allowField(true)
            -> save([
               'name' => '虚竹',
               'age' => 30,
                'salary' => 5400,
               'level' => 3  //非表字段,自动过滤 
              ]);
dump($res);

//4.allowField([字段列表]):设置允许新增的字段
$staff = new Staff();
$res=$staff -> allowField(['name','age'])
            -> save([
               'name' => '方世玉',
              'age' => 30,
               'salary' => 3333, //不会新增
               'level' => 3  //非表字段,自动过滤
              ]);
dump($res);

三、saveAll([二维关联数组]):新增多条记录

$staff = new Staff();   //获取模型对象
$res=$staff -> saveAll([  //新增多条数据放在二维关联数组中
  ['name'=>'乾隆','age'=>30, 'salary'=>9999],
  ['name'=>'和珅','age'=>40, 'salary'=>8888],
  ['name'=>'纪晓岚','age'=>50, 'salary'=>2222],
]);  // 返回有三个元素的模型对象数组
// 遍历模型对象数组
foreach ($res as $val) {
  dump($val -> getData()); //查看原始数组
}

//返回结果:
array(4) {
  ["name"] => string(6) "乾隆"
  ["age"] => int(30)
  ["salary"] => int(9999)
  ["id"] => string(2) "25"
}

array(4) {
  ["name"] => string(6) "和珅"
  ["age"] => int(40)
  ["salary"] => int(8888)
  ["id"] => string(2) "26"
}

array(4) {
  ["name"] => string(9) "纪晓岚"
  ["age"] => int(50)
  ["salary"] => int(2222)
  ["id"] => string(2) "27"
}



本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学