Laravel Eloquent не работает с 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

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

Странно, не правда ли?

1

Решение

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

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector