Laravel 查询生成器:缓存列表结果

Laravel Query Builder: Caching a list result

可以像这样缓存查询结果:

$users = DB::table('users')->remember(10)->get();

但是如何缓存列表结果。这不起作用:

$roles = DB::table('roles')->lists('title'); // Works, but not cached.
$roles = DB::table('roles')->remember(10)->lists('title'); // Not working.

抛出错误:

exception 'BadMethodCallException' with message 'Call to undefined method Illuminate\Database\Query\Builder::remember()'

Illuminate\Database\Query\Builder::remember() 已在 laravel 5+ 中删除,您可以改用它:

$roles = Cache::remember('roles', 10, function() {
    return DB::table('roles')->lists('title');
});

希望对您有所帮助。