Laravel 5.1 中如何使用模型觀察者


有時候我們需要在一個表更改后,觸發某個事件,最常見的比如,首頁推薦商品 1 更改了,需要清空所有首頁商品緩存。

首先我們需要在建立一個觀察者類,比如 App\Model\Observers\ProjectAttrObservers,當然放在什么地方或者叫什么名都可以自己定義。

里面的代碼可能是

<?php namespace App\Models\Observers; class GoodsObservers { public function saved(\App\Models\Goods $model) { \Cache::forget('topGoodsList'); } } 

作用就是,當 goods 表新增和修改的時候,saved 這個方法就會觸發,然后清空緩存

之后在 AppServiceProvider,當然你也可以新建一個比如 ObserverServiceProvider

<?php namespace App\Providers; use App\Models\Goods; use Illuminate\Support\ServiceProvider; class ObserverServiceProvider extends ServiceProvider { /** * Bootstrap any application services. * * @return void */ public function boot() { Goods::observe(new \App\Models\Observers\GoodsObservers()); } /** * Register any application services. * * @return void */ public function register() {  // } } 

這個的作用是在程序啟動的時候,監聽 GoodsObservers 這個類 最后,將 ObserverServiceProvider 放到 config/app.php 的providers 數組中即可

本功能僅在 laravel 程序內可用,如果別的程序修改了 goods 表,這個模型觀察者不會觸發的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM