当前位置: 首页 > news >正文

为你自己学laravel - 15 - model的更新和删除

为你自己学laravel。

model的部分。

这一次讲解的是model当中怎么从数据库当中更新数据和删除数据。


在这里插入图片描述

先从数据库当中抓出来资料。

当然我们是使用php artisan tinker进入到终端机。

在这里插入图片描述

我们的做法是想要将available这个栏位修改成为true。

第一种更新方法

image-20231220215311452

上面我们就是修改了对象当中的一个栏位,修改了之后,我们要记得使用$b1->save()这种方法。

image-20231220215350266

上面的这张图的意思,就是我们进行验证的时候,查看的时候,看到了,真的是已经变成了1。


sqlite当中并没有资源处理true或者false,所以它使用的tiny integer这种东西处理布尔值。


上面的做法,就是更新的第一种做法了。

第二种更新方法

image-20231220215538776

image-20231220215555285

$b2->update(['available' => true])

这种做法就是直接呼叫update方法,就可以做到了。

你就不需要呼叫save方法了。


验证查询一下:

image-20231220215803655

Book::where('available', true)

这个做法,就是查询一下,所有的available的字段是true的book了。

批量更新

Book::where('available', true)->update(['available' => false])

这是要将所有在架子上面的书,都变成了false。

更新,就是将资料抓出来,然后更新它。

删除

image-20231220221826447

这个是第一步,就是先在资料库当中新增了一个书籍。

我现在的目的,就是想要删除掉,我已经添加的这一本。

第一种删除方法

image-20231220221917596

这是使用实例的方法,就是先将数据库当中的资料,先抓出来,抓出来了之后,再砍掉的,这种做法。

第二种删除方法

image-20231220222021543

这是使用类的方法,就是destroy的方法。

软删除-逻辑删除

电商网站当中,删除不是真正的删除的哦~。

在laravel的ORM当中,算是有半内建的套件,是可以用的。

这个动作,我们叫做soft-delete

laravel的做法是:帮你建立一个栏位,delete_at,默认值是null的。

如果我们进行soft-delete,我们就会将删除的时间,写到delete_at这个栏位。

我们要做软删除,就要新增一个栏位。

我们要对资料表做栏位的修改,我们应该通过migration来做的。

image-20231220223302791

php artisan make:migration add_deleted_at_to_books

我们这里,是使用了,migration的魔术语法。

image-20231220223343347

上面就是为我们新增好的migration。

image-20231220223416281

$table->dataTime('deleted_at');

这是一种创建软删除的方法。

image-20231220223516753

laravel当中会提供一个东西,就是上面的内容。

$table->softDeletes();

有了这个方法,你就不需要自己写了。

我们是推荐这一种写法的。

然后在migration的down当中应该写什么呢?

image-20231220223641499

$table->dropSoftDeletes();

然后就可以跑到终端机当中执行了:

image-20231220223721580

php artisan migrate

然后,我们去数据库当中看一看,发现是真的有诶~

image-20231220223804466

image-20231220223817836


要注意,不是你在数据库当中添加了这个delete_at栏位之后就有效果的,你还是需要在model当中动一些手脚的。

image-20231220224157135

就是像是上面这个样子的,就是要在model的类当中,使用模组use SoftDeletes;


假设你是不希望在数据库表当中,用于软删除的栏位是delete_at这个栏位的话。

你也是可以在model当中进行设定的。


在php artisan tinker当中进行验证。

image-20231220224342078

这个当然是删除的一般的步骤了。

image-20231220224409888

但是在数据库当中,还是有数据的,delete_at这个栏位是有时间的。


我软删除了之后,我还是想要找到他的,我怎么找到他呢?

image-20231220224538929

总结

$b1->available = true
$b1->save()$b2->update(['available' => true])$b3->delete()Book::destroy(4)软删除的方法:第一是在migration当中使用操作数据库表的栏位,新增delete_at这个栏位。第二是在model当中要使用use SoftDelete这种套件。

image-20231220224502438

http://www.lryc.cn/news/264543.html

相关文章:

  • 列举mfc140u.dll丢失的解决方法,常见的mfc140u.dll问题
  • 智能优化算法应用:基于野狗算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • DC-8靶场
  • SQL Server 安装教程
  • 快猫视频模板源码定制开发 苹果CMS 可打包成双端APP
  • 【C++】理解string类的核心理念(实现一个自己的string类)
  • conda 虚拟环境使用
  • C# 使用MSTest进行单元测试
  • 基于Java (spring-boot)的宠物管理系统
  • 基于博弈树的开源五子棋AI教程[1 位棋盘]
  • Java Catching and Handling Exceptions(二)
  • 【HarmonyOS开发】ArkTs关系型和非关系型数据库的存储封装
  • Latex编译出来的pdf文件缺少参考文献和交叉引用
  • sql_lab靶场搭建以及存在的一些问题
  • Https接口调用问题
  • CSS自适应分辨率 amfe-flexible 和 postcss-pxtorem:大屏高宽自适应问题
  • SQL面试题挑战01:打折日期交叉问题
  • 三大主流前端框架介绍及选型
  • 云原生消息流系统 Apache Pulsar 在腾讯云的大规模生产实践
  • 【LeetCode刷题】--245.最短单词距离III
  • 数字化时代的智能支持:亚马逊云科技轻量应用服务器技术领先
  • 【智慧之窗】AI驱动产品探索
  • BBS项目--登录
  • Python---TCP服务端程序开发
  • 回归预测 | MATLAB实现GWO-DHKELM基于灰狼算法优化深度混合核极限学习机的数据回归预测 (多指标,多图)
  • 听GPT 讲Rust源代码--src/tools(15)
  • python可以做小程序研发嘛,python能做微信小程序吗
  • 创建型模式 | 单例模式
  • 【无标题】欢迎使用Markdown编辑器
  • Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用