2015-05-03 1 views
1

Я пытаюсь кэшировать запрос в laravel в модели. Мой код был:Laravel Eloquent не работает с кешем

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 

Но я уверен, что эта переменная определена, я использовать его до ...

Странно, не так ли?

ответ

1

Если вы используете закрытие, вам нужно добавить use использовать любую переменную внутри закрытия таким образом:

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

Большое спасибо! – raph77777