我需要在我的laravel 5应用程序的很多路径中使用下面的代码,所以首先:如何使它成为一个简单的函数?第二:如何将此查询的结果缓存至少10分钟
$devices = \Auth::user()->devices()->whereNumber($number)->firstOrFail();发布于 2015-03-27 08:37:03
关于第一个问题,您可以在User类中添加另一个方法,如下所示-
public function MyFuncName($number){
return $this->devices()->whereNumber($number)->firstOrFail();
}如果您希望为每个用户缓存它,您可以在Laravel 4中这样做-
public function MyFuncName($number){
return $this->devices()->whereNumber($number)->remember(10)->firstOrFail();
}但是在Laravel 5你应该这样做:
public function myFuncName($number){
return \Cache::remember('user_device_' . $number, 10, function() use ($number)
{
return $this->devices()->whereNumber($number)->firstOrFail();
});
}调用您要执行的函数
$devices = \Auth::user()->MyFuncName($number)忘记提到,您必须先验证用户,好像\Auth:: user ()返回空/false用户没有经过身份验证,然后它会抛出此方法不存在的异常。
https://stackoverflow.com/questions/29293980
复制相似问题