2016-12-20 10 views
1

APIからデータをフェッチし、キャッシュに保存するユーティリティクラスを作成しました。メソッドCache::put()を使用しています。キャッシュにデータを格納するコードを以下に示します。memcachedを使用した場合のLaravelキャッシュコントローラとモデルのアクセス時に同じデータを返さない

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

このデータは、ティンカーのCache::get()を使用して取得できます。しかし、私は、クエリがnullを返す

$campaigns = Auth::user()->campaigns()->with(['adwords', 'facebookAds'])->get(); 

$data = []; 
foreach ($campaigns as $campaign) 
{ 
     $data[] = Cache::get('ADWORDS_DATA_' . $campaign->adwords->account_number); 
} 

、このようなコントローラの方法でキャッシュからデータを取得しようとします。私はすでに各アプリケーションの環境をローカルからステージングするように変更して、各リクエスト時にキャッシュがリセットされないようにしていますが、キャッシュに保存しているデータをモデルメソッドとティンカーで利用できるのはなぜですか?

ご協力いただければ幸いです。

+0

複数の異なるドライバタイプを使用してこれを試しました。私は 'file'、' array'、 'redis'と' memcached'で試しました。私がこれを再現できる唯一のものは '配列'でした。残りの部分は正しく動作していたようです。おそらく、権限や実行可能な所有権と関係があります。 – Ohgodwhy

答えて

0

私は少しばかだと思います。私はキャッシュがテスト環境に永続化されていないことを忘れていました。テストを通してルートにアクセスすると、キャッシュから結果が得られませんでした。

関連する問題