在Laravel中,您可以使用以下标记将项目放置在缓存中:

Cache::tags('bans')->put($result->ip, $result->reason);

但我似乎无法找到一种方法来获取具有特定标签的所有项目。是否可以检索具有特定标签的所有项目?

喜欢:
Cache::tags('bans')->all();

或类似的东西

最佳答案

我觉得你用错了。作为第一个参数,您传递缓存的键,作为第二个值和第三个以分钟为单位的过期时间。

如果你想有理由地缓存一些禁令,例如假设你在 PHP 中有一些发送垃圾邮件的用户组,你可以使用这样的东西:

$bans = [
   [
       'ip' => 'test ip',
       'reason' => "spam: test reason",
   ],
   [
       'ip' => 'test ip2 ',
       'reason' => "spam: test reason 2",
   ]

];

Cache::tags('bans')->put('spam', $bans, 100);

$spams = Cache::tags('bans')->get('spam');
foreach ($spams as $spam) {
    echo $spam['ip'].' '.$spam['reason']."<br />";
}

所以在这里你把整个数组放入缓存中,现在你可以使用标准的 foreach 循环访问项目。

关于php - Laravel 缓存获取所有带标签的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26340011/

10-15 01:45