Laravel 的 Events 及 Observers(一)
程序员文章站
2022-05-14 15:41:27
...
什么是事件?如果你在谷歌中搜索这个词,你会得到多个结果。例如,它会被定义为已经发生或被视为发生的一些事;一次事故,尤其是特别重大的。它也可以定义为发生在一段特定时期内特定地点的事。
我喜欢这两个定义,因为它们与我们的内容很符合。事实上,在某种意义上,你可以把这段特定的时期看作模型的生命周期。
你可以创建一个新的实例,更新现有实例,或删除它。你可以做的每个操作都涉及到两个事件。
从基础上来说:我刚刚创建了一条记录,我删除了那条记录,我正在更新那条记录,听起来很自然,对吗?
在当模型的生命周期中,当发生一些事的时候,Eloquent 会触发一些事件:
- creating
- created
- updating
- updated
- saving
- saved
- deleting
- deleted
- restoring
- restored
对于每一个操作,都对应两个独立的事件。正如你可能想象的,它们指的是单独的时刻。我们已创建操作作为实例:
你有一个 creating事件,可以理解为“创建操作即将发生”,而 created表示“事件已经发生了”。
科学家可能会说:
- creating:是表示 t – 1时刻
- created:是与 t + 1 时刻相关
所以,对于下面三个基本操作,都有两个对应的事件:创建 ( create)、更新 ( update) 和删除 ( delete)。
此外,你还可以看到另外两个操作:保存 ( save) 和恢复 ( restore)。但是,请不要担心,他们并不复杂:
- Save:你只需要知道, save操作是与 create和 update相关的。我们假设你需要添加一个行为,应用程序是创建一条新的记录还是更新一条已有的记录。难道对相同的事情还要声明两次吗?只需一个普通的 save操作即可。
- Restroe:当你的某个模型用到了软删除,并执行撤销操作的时候,就会用到 restore操作。
好吧,我知道你在想什么:这个概念更深一层的含义是什么呢?我们通过实例来解答。
下一篇: 验证码类在asp.net mvc中的使用
推荐阅读
-
一套完成的传统产品网络营销及网络推广方案
-
广东实力最强的一本大学有哪些?广东省最牛的大学2021年最低录取分数线及位次排名
-
压缩卷只能压缩一半现象的原因解析及解决方法介绍
-
一、mysql数据库,忘记密码怎么处理及处理过程中遇见的问题
-
2021年西南地区十大名校:西南地区好的一本大学是哪些?附排名及分数线
-
东北三省哪个大学排第一?附2020东北三省最好的大学及分数线(2021年参考)
-
运营干货:一个新上线的电商类网站诊断分析及优化方案分享
-
2013款mac air及一体机安装win7 键盘鼠标失灵的解决方法
-
laravel中的一些简单实用功能
-
JQuery slideshow的一个小问题(如何发现及解决过程)