数据库更新后如何清除缓存?

问题描述 投票:0回答:1

我试图在一些表更新后清除缓存。

在我正在添加的控制器的商店功能

Artisan::call('cache:clear');

但这不是一个很好的方法。我让观察者这样做了。但这也在重演。

例如我有用户,类别,帖子,访问者表。如果更新了类别和帖子表,则必须清除缓存。但我无法清楚地说明这一点。我可以为此写清楚代码吗?任何想法都会很好。提前致谢。

mysql database laravel caching artisan
1个回答
1
投票

这是清晰代码的一个例子:

在app / Traits / CacheClear.php中创建文件,并输入以下代码:

`

trait CacheClear {

/**
 * Boot function for Laravel model events.
 * https://laravel.com/docs/5.8/eloquent#events
 *
 * @return void
 */
protected static function boot()
{
    parent::boot();

    /**
     * After model is created, or whatever action, clear cache.
     */
    static::updated(function () {
        Artisan::call('cache:clear');
    });
}

}`

现在,以防万一,运行composer dump-autoload

之后转到您的模型并使用该特征,

use App\Traits\CacheClear;

class User extends Model { use CacheClear; }

每次在User模型上触发update事件时,都会调用命令:)

© www.soinside.com 2019 - 2024. All rights reserved.