我需要在我的laravel 5应用程序的许多路由中使用以下代码,所以首先:如何使其成为一个简单的函数?第二:如何缓存此查询的结果至少10分钟
$devices = 'Auth::user()->devices()->whereNumber($number)->firstOrFail();
关于您的第一个问题,您可以向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()返回null/false[用户未通过身份验证],然后它会向您抛出一个异常,即该方法不存在