2015-12-18 3 views
-1

Я пытаюсь фильтровать данные кэша, используя приведенный ниже кодОшибка при фильтрации данных кэша: Laravel 5,2

$Categories = \Cache::rememberForever('Categories', function() { 
    return \App\Models\Skill\Category_Model::all(); 
}); 

$Category = $Categories::where("CategoryID", "=", $id)->first(); 

Сведения об ошибке:

Non-статический метод ILLUMINATE \ Поддержка \ Коллекция :: where() не должна быть называется статически, предполагая $ это из несовместимого контекста

Я ничего не пропустил?

Я имел в виду, что самый быстрый способ фильтрации данных в кеш-объекте. Объект Cache - это модель. Категории Array содержит коллекцию моделей, которая содержит идентификатор категорииID. и я хочу, чтобы фильтровать данные, основанные на CategoryID

+0

Является ли ваша переменная '$ Categories'' 'Collection'? –

ответ

1

Вы должны использовать:

$Categories->where("CategoryID", $id)->first(); 
// or 
$Categories->where("CategoryID", '=', $id)->first(); 

where нельзя назвать статически. Оформить заказ класс Illuminate\Support\Collection.

Edit:

Вы можете только назвать его статическим на красноречивые модели, в том, как вы пытались. И потому, что вы уже получили результаты (в коллекцию).

+0

Когда я делаю выше, я не получаю отфильтрованную запись. В то время как я могу получить запись, когда я пишу цикл 'for each' – Pankaj

+0

Как выглядит структура массива/данных? –

 Смежные вопросы

  • Нет связанных вопросов^_^