码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-06-17 16:54:11      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

有时候我们需要在一个表更改后,触发某个事件,最常见的比如,首页推荐商品 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 表,这个模型观察者不会触发的。

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

标签:

原文地址:http://www.cnblogs.com/lpfuture/p/5594237.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!