简体   繁体   English

Laravel Eloquent不适用于Cache

[英]Laravel Eloquent doesn't work with Cache

I'm trying to cache a query in laravel in a model. 我正在尝试在模型的laravel中缓存查询。 My code was : 我的代码是:

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

So I did it like this: 所以我这样做是这样的:

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

And a strange error appears : 并且出现一个奇怪的错误:

Undefined variable: id

But I'm sure this var is defined, I use it before... 但是我确定这个var是定义好的,我之前用过...

Strange, isn't it? 奇怪,不是吗?

If you use closure, you need to add use to use any variable inside closure this way: 如果使用闭包,则需要添加use以在闭包内使用任何变量,方法是:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM