神刀安全网

Laravel 的 Events 及 Observers(一) — 何时使用事件

什么是事件?如果你在谷歌中搜索这个词,你会得到多个结果。例如,它会被定义为已经发生或被视为发生的一些事;一次事故,尤其是特别重大的。它也可以定义为发生在一段特定时期内特定地点的事。

我喜欢这两个定义,因为它们与我们的内容很符合。事实上,在某种意义上,你可以把这段特定的时期看作模型的生命周期。

你可以创建一个新的实例,更新现有实例,或删除它。你可以做的每个操作都涉及到两个事件。

从基础上来说:我刚刚创建了一条记录,我删除了那条记录,我正在更新那条记录,听起来很自然,对吗?

在当模型的生命周期中,当发生一些事的时候,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 操作是与 createupdate 相关的。我们假设你需要添加一个行为,应用程序是创建一条新的记录还是更新一条已有的记录。难道对相同的事情还要声明两次吗?只需一个普通的 save 操作即可。
  • Restroe :当你的某个模型用到了软删除,并执行撤销操作的时候,就会用到 restore 操作。

好吧,我知道你在想什么:这个概念更深一层的含义是什么呢?我们通过实例来解答。

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Laravel 的 Events 及 Observers(一) — 何时使用事件

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
分享按钮