2015-12-18 2 views
-1

Je suis en train de filtrer les données du cache à l'aide du code ci-dessousErreur lors de filtrer les données du cache: Laravel 5.2

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

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

Détails d'erreur:

méthode non statique Illuminate \ Support \ Collection :: where() ne doit pas être appelé statiquement, en supposant $ this du contexte incompatible

Est-ce que je manque quelque chose?

Je voulais dire, quel est le moyen le plus rapide de filtrer les données dans l'objet cache. L'objet Cache est un modèle. Categories Array contient la collection de Models qui contient l'ID categoryID. et je veux filtrer les données basées sur CategoryID

+0

Votre variable '$ Categories' est-elle un' Collection'? –

Répondre

1

Vous devez utiliser:

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

where ne peut pas être appelée statiquement. Commander la classe Illuminate\Support\Collection.

Edit:

Vous ne pouvez l'appeler statique sur un modèle Eloquent, de la manière que vous avez essayé. Et parce que vous avez déjà récupéré les résultats (dans Collection).

+0

Lorsque je fais ci-dessus, je ne reçois aucun enregistrement filtré. Alors que je peux enregistrer quand j'écris la boucle 'for each' – Pankaj

+0

Comment ressemble la structure de tableau/données? –