Я пытаюсь кэшировать запрос в 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();
});
Других решений пока нет …