Laravel用户特定的缓存

Har*_*ist 3 php caching laravel

我从来没有做过很多缓存,但是现在尝试尝试一下。我有一个返回大量数据的仪表板,并且为了减轻负载,我在缓存数据,如下所示:

return cache()->rememberForever('something', function () {
    return auth()->user()->something()->get();
});
Run Code Online (Sandbox Code Playgroud)

其中“某物”只是一个相关模型。创建新记录时,在控制器storeupdate方法中,我只需要这样做:

cache()->forget('something');
Run Code Online (Sandbox Code Playgroud)

所有这些都完美无缺。但是,当我与另一个用户登录时,显然前一个用户的所有缓存数据都显示在仪表板上。

有没有一种简单的方法可以简单地为每个用户缓存数据?

Ale*_*nin 5

您可以执行以下操作为每个用户分别存储用户对象:

return cache()->rememberForever('something' . auth()->id(), function () {
    return auth()->user()->something()->get();
});
Run Code Online (Sandbox Code Playgroud)

要获取经过身份验证的用户的数据:

 cache('something' . auth()->id());
Run Code Online (Sandbox Code Playgroud)