Laravel Eloquent 不适用于缓存

Laravel Eloquent doesn't work with Cache

我正在尝试在模型中缓存 laravel 中的查询。 我的代码是:

foreach(Building::where('village', '=', $village->id)->get() as $building)
            {

所以我这样做了:

$buildingCache = Cache::remember('test123456', 60, function()
{
    return Building::where('village', '=', $id)->get();
});
foreach ($buildingCache as $bjdkfjksk)...............

然后出现一个奇怪的错误:

Undefined variable: id

但是我确定这个变量已经定义了,我以前用过它...

奇怪,不是吗?

如果使用闭包,则需要添加 use 以这种方式使用闭包内的任何变量:

$buildingCache = Cache::remember('test123456', 60, function() use ($id)
{
    return Building::where('village', '=', $id)->get();
});