【问题标题】:Querying previously cached resources查询之前缓存的资源
【发布时间】:2017-09-12 17:23:03
【问题描述】:

我正在使用 Laravel 5.1 和 memcached,我正在尝试找到一种方法来查询以前缓存的一些数据。

例如,假设我缓存了一堆来自电子邮件的事件,例如点击、打开等。

我会像这样缓存一个特定用户的所有事件:

$events = \Cache::section(Events::table())->remember('events-' . Session::get('uid'), 30, function() {
   return Events::select()
      ->where('user_id', Session::get('uid'))
      ->get();
});

现在我希望能够在用户查看特定电子邮件时查询 $events,所以应该是这样的:

$events->where('email_id', $id)->get();

我一直无法找到正确执行此操作的方法,甚至不确定要搜索什么。到目前为止,我尝试过的一切都失败了。

我想这是可能的,我只是不知道该怎么做。

【问题讨论】:

  • 基本上你想在你的缓存数据中搜索?

标签: php laravel caching memcached


【解决方案1】:

缓存将返回事件的集合。所以$event 有项目的集合。

要获取您需要的数据,您需要使用all() 收集方法,如下所示:

$events->where('email_id', $id)->all();

如果您没有向get() 提供任何密钥,它将返回null。 在这里查看:https://laravel.com/docs/5.4/collections#method-get

更多请查看Collection 的可用方法:https://laravel.com/docs/5.4/collections#method-contains

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    相关资源
    最近更新 更多