我需要在我的laravel 5应用程序的很多路径中使用下面的代码,所以首先:如何使它成为一个简单的函数?第二:如何缓存此查询的结果至少10分钟
$devices = \Auth::user()->devices()->whereNumber($number)->firstOrFail();
答案 0 :(得分:2)
关于您的第一个问题,您可以向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)
忘记提及你必须先验证用户,如果\ _ \ n \ n \ n \ n \ n \ n \ n \ n \ net \ _ \ n按钮返回null / false [用户未经过身份验证]然后会抛出此方法不存在的异常