在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/