上一篇文章讲解“模型定义+初始化”,本篇文章讲解“模型-新增”。新增即想数据库中新插入一条数据。新增数据有多种方式。
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开发连载模型-新增
领取专属 10元无门槛券
私享最新 技术干货