我试图在一些表更新后清除缓存。
在我正在添加的控制器的商店功能
Artisan::call('cache:clear');
但这不是一个很好的方法。我让观察者这样做了。但这也在重演。
例如我有用户,类别,帖子,访问者表。如果更新了类别和帖子表,则必须清除缓存。但我无法清楚地说明这一点。我可以为此写清楚代码吗?任何想法都会很好。提前致谢。
这是清晰代码的一个例子:
在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
事件时,都会调用命令:)