thinkphp5开发连载模型-更新

在取出数据后,更改字段内容后更新数据。Index控制器,新建getUpdate方法

查看数据库user表ID等于2的原始数据(未执行修改操作前)

浏览器访问

执行后的数据库

Index控制器,新建zUpdate方法

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

Index控制器,新建allowUpdate方法更新即为修改,修改的步骤为“查询修改数据=》展示数据=》修改数据=》提交数据=》更新数据库”,是在原数据的基础上进行修改,这里为了方便,直接跳过展示原数据的步骤,直接设置修改后的数据。

新建allowupdate.html模板页,文件位置application/index/view/index/

浏览器预览

点击提交,查看数据库

Index控制器,新建fieldUpdate方法

数据库未修改前,ID=2数据详情

浏览器访问

点击提交,查看数据库

只有name字段进行了修改,其他字段不变。可以使用saveAll方法批量更新数据。

Index控制,新疆allUpdate方法

数据库未修改前,ID=1,ID=2数据详情

浏览器访问,查看数据库

1.批量更新仅能根据主键值进行更新,其它情况请使用foreach遍历更新。必要的时候,你也可以使用数据库对象来直接更新数据,但这样就无法使用模型的事件功能。

Index控制器,新建uUpdate方法

浏览器访问

查看数据库

Index控制器,新建uuUpdate方法

浏览器访问

查看数据库

1.如果传入update的数据包含主键的话,可以无需使用where方法。模型支持静态方法直接更新数据。Index控制器,新建staticUpdate方法

浏览器访问

查看数据库

1.或者直接使用update方法,update传入的数据包含主键的话,可以无需使用where方法,即:User::update(['id'=>2,'name'=>'静态方法更新数据']);可以通过闭包函数使用更复杂的更新条件。Index控制器,新建biUpdate方法

查看数据库,id大于60的数据信息,其中cid等于3的有三个

浏览器访问

查看更新后的数据库

我们已经看到,模型的新增和更新方法都是save方法,系统有一套默认的规则来识别当前的数据需要更新还是新增。1.实例化模型后调用save方法表示新增;1.查询数据后调用save方法表示更新;2.save方法传入更新条件后表示更新;如果你的数据操作比较复杂,可以显式的指定当前调用save方法是新增操作还是更新操作。Index控制,新建xianUpdate方法

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

「ThinkPHP5开发连载44」thinkphp5开发连载模型-更新

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

扫码关注云+社区

领取腾讯云代金券