thinkphp5开发连载模型-新增

上一篇文章讲解“模型定义+初始化”,本篇文章讲解“模型-新增”。新增即想数据库中新插入一条数据。新增数据有多种方式。

Index控制器中新建add方法。

浏览器访问预览

数据库user表

Index控制器,新建dataAdd方法

浏览器访问预览:

数据库

Index控制器,新建newAdd方法

浏览器访问预览:

数据库

创建表单,模拟post提交进行测试。Index控制器,新建allowAdd方法

新建allowadd.html文件(位置:application/index/view/index/)

浏览器访问

点击提交:

数据库

Index控制器,新建trueAdd方法

浏览器访问

点击提交,提交成功后,查看数据库。数据库

1.save方法新增数据返回的是写入的记录数。将数据插入数据库后,save方法返回的是插入的数据条数。有时需要使用当前插入数据的ID,因此需要获取自增ID。

浏览器访问预览:

数据库:

1.这里其实是获取模型的主键,如果你的主键不是id,而是user_id的话,其实获取自增ID就变成这样:$user->user_id;Index控制器,新建more方法

浏览器访问预览

moreID方法中新增了两次数据,第一次新增成功,并输出自增ID,第二次提示“缺少更新条件”,说明第二次的save被当成更新,要解决此问题,需要添加一个连贯操作isUpdate。修改moreID方法中的第二次新增

浏览器预览访问

数据库

1.当一个实例中多次新增数据时,从第二次开始新增开始都要使用isUpdate操作,否则被视为更新。ThinkPHP5中还支持批量添加数据。

Index控制器,新建moreAdd方法

浏览器访问,数据库查看

saveAll方法新增数据默认会自动识别数据是需要新增还是更新操作,当数据中存在主键的时候会认为是更新操作,如果你需要带主键数据批量新增,可以使用下面的方式:

浏览器访问,数据库查看:

1.saveAll(数据,是否自动识别新增更新)2.saveAll方法第二个参数为空时,代表自动识别新增和更新,识别方式为第一个参数数据是否带主键,有主键为更新,无主键为新增。3.当第二个参数设为false时,视为新增。还可以直接静态调用create方法创建并写入:

Index控制器,新建createAdd方法。

浏览器访问

数据库

1.和save方法不同的是,create方法返回的是当前模型的对象实例。系统提供了model助手函数用于快速实例化模型,并且使用单例实现。

Index控制器,新建modelAdd方法。

浏览器访问

关注卓象程序员,定期发布技术文章下一篇讲解“模型-更新”

「ThinkPHP5开发连载43」thinkphp5开发连载模型-新增

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180920A1NO0B00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券