首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在laravel 5中实现全局缓存功能

如何在laravel 5中实现全局缓存功能
EN

Stack Overflow用户
提问于 2015-03-27 05:35:07
回答 1查看 1K关注 0票数 1

我需要在我的laravel 5应用程序的很多路径中使用下面的代码,所以首先:如何使它成为一个简单的函数?第二:如何将此查询的结果缓存至少10分钟

代码语言:javascript
运行
复制
$devices = \Auth::user()->devices()->whereNumber($number)->firstOrFail();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-27 08:37:03

关于第一个问题,您可以在User类中添加另一个方法,如下所示-

代码语言:javascript
运行
复制
public function MyFuncName($number){
    return $this->devices()->whereNumber($number)->firstOrFail();
}

如果您希望为每个用户缓存它,您可以在Laravel 4中这样做-

代码语言:javascript
运行
复制
public function MyFuncName($number){
    return $this->devices()->whereNumber($number)->remember(10)->firstOrFail();
}

但是在Laravel 5你应该这样做:

代码语言:javascript
运行
复制
public function myFuncName($number){
    return \Cache::remember('user_device_' . $number, 10, function() use ($number)
    {
        return $this->devices()->whereNumber($number)->firstOrFail();
    });
}

调用您要执行的函数

代码语言:javascript
运行
复制
$devices = \Auth::user()->MyFuncName($number)

忘记提到,您必须先验证用户,好像\Auth:: user ()返回空/false用户没有经过身份验证,然后它会抛出此方法不存在的异常。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29293980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档