困倦的午后小记
文章目录
有时候感叹,智商真是有限,好在感叹还不至于那么频繁。
学习
忙里偷闲,学习了一下 laravel 的 Event (via),简单的说,逻辑就是在代码里使用 event()
触发事件,然后事件触发监听器,好处在于一个事件可以触发多个监听器。例如本次测试代码:
|
|
在 Eloquent 中也可以使用 Event (via),分别在curd不同的时候触发事件,不过目前不知道怎么直接在事件中,获取到更改之前的数据。
监听器还可以直接使用队列运行(via),非常方便,不过要先配置好队列。
还有 Event Subscribers,是一种用来在单个监听器文件中,处理多个事件的方式。
总之,监控器和事件,是可以多对多的。
实践
这次给博客增加的功能,是要实现文章的历史记录,不过由于没找到 model 触发事件时,怎么传未修改的值,现在历史表中也会保存最新的文章版本。
这个功能就使用了 Eloquent 中的 saved 事件:
|
|
然后在ArticleSaved
事件中注入一个Article Model:
|
|
最后,在BackupArticle
监听器中,实现备份:
|
|
然后,就大功告成啦~