2016-12-20 1 views
1

Ich habe eine Dienstprogrammklasse erstellt, die ich verwenden, um Daten aus einem API abzurufen und im Cache speichern mit der Methode Cache::put(). Der Code zum Speichern von Daten im Cache ist unten gezeigt.Laravel-Cache bei Verwendung von memcached nicht die gleichen Daten beim Zugriff in Controller vs Modell

protected static function cacheData(array $data) 
{ 
    foreach ($data as $id => $value) 
    { 
     Cache::put('ADWORDS_DATA_' . $id, $value, 60 * 6); 
    } 
} 

Diese Daten können mit Cache::get() in Kesselflicker abgerufen werden. Aber wenn ich versuche, die Daten aus dem Cache in einer Controller-Methode wie dieser abzurufen, gibt die Abfrage den Wert null zurück,

. Ich habe meine App-Umgebung bereits auf Staging von lokal geändert, damit der Cache bei jeder Anforderung nicht zurückgesetzt wird, aber ich kann nicht herausfinden, warum die Daten, die ich im Cache abspeichere, über Modellmethoden und Tinker verfügbar sind, aber nicht über den Controller.

Jede Hilfe würde sehr geschätzt werden.

+0

Ich habe das gerade für Sie mit mehreren verschiedenen Treibertypen ausprobiert. Ich habe es mit 'file',' array', 'redis' und' memcached' probiert. Der einzige, den ich reproduzieren konnte, war 'array'. Der Rest von ihnen schien richtig zu funktionieren. Vielleicht hat es etwas mit Berechtigungen zu tun, oder wer ist ausführbar Besitz. – Ohgodwhy

Antwort

0

Stellt sich heraus, ich bin nur ein bisschen dumm. Ich hatte vergessen, dass der Cache nicht in der Testumgebung blieb, so dass ich beim Zugriff auf eine Route durch einen Test nicht die Ergebnisse aus dem Cache erhielt, die ich erwartet hatte.

Verwandte Themen