我正在使用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();
我一直无法找到正确执行此操作的方法,而且我不太确定要搜索什么。到目前为止,我所尝试的一切都失败了。
我认为这是可能的,我只是不知道如何去做。
答案 0 :(得分:0)
缓存将返回事件集合。所以$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