2016-05-08 6 views
1

Ich versuche Cache in mein Laravel 5.0-ProjektCaching Umfang Abfragen in Laravel

Viele der Beispiele zu implementieren ich für das Caching Online sehen sind nicht Umfang Abfragen, so dass ich bin ein wenig verwirrt. Hier ist eine Abfrage/Methode von meinem Modell, das meine Klassen alle Verkettungen von subject_code zurück und course_no

/** 
* Get all course codes and titles 
* Used in the autocomplete search 
* @param $query 
* @return mixed 
*/ 
public function scopeAllCourseNo($query) { 
    return $query 
     ->orderBy('course_no') 
     ->groupBy(
      DB::raw("subject_code || ' ' || course_no") 
     ) 
     ->get() 
     ; 
} 

als die erste Zeile des Verfahrens ist einfach eine Rückkehr, ich bin gespannt, wo ich die Cache::add('', $allClasses, 30); setzen können Abfrage? Und wo gebe ich an:

if (Cache::has('allClasses')) 
{ 
    return Cache::get('allClasses'); 
} 

Vielen Dank.

Antwort

1

In Ihrem Modell wird nicht zwischengespeichert. Sie cachen in Ihrem Controller.

So in Ihrem Controller:

Sie können mit Cache() hinzufügen, aber ich ziehe Cache :: erinnern(). https://laravel.com/api/5.2/Illuminate/Cache/Repository.html#method_remember

$classes = Cache::remember('classes', 60, function() { 
    return Class::allCourseNo()->get(); 
}); 
+0

Oh, Sie sind völlig richtig. Das ist total sinnvoll. Vielen Dank! – theGreenCabbage

+0

Hallo Chris. Nach der Dokumentation "Holen Sie sich einen Artikel aus dem Cache, oder speichern Sie den Standardwert", schätze ich, spart dies das Element in den Cache, und wenn existiert, auch aus dem Cache? – theGreenCabbage

+0

@theGreenCabbage Das ist richtig :) – Chris