[英]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.