2016-07-20 18 views
1

複数の言語をサポートするLaravel 5.2で構築されたWebサイトがあります。ウェブサイトのコンテンツのほとんどはMySQLデータベースから来ています。私はほとんどのクエリをキャッシュします。例:Laravel 5クエリキャッシュ

問題は、クエリ結果が保存されるウェブサイトの英語版にアクセスするときです。その後、言語をDeutschに変更すると、クエリはキャッシュされ、データベースから英語のデータが表示されます。あなたは私がこれをどのように扱うことができるか提案していますか?

はありがとう

私はキャッシュ名でロケールを含めると思い

答えて

0

$locale = App::getLocale(); 

$categories = Cache::remember('Categories.' . $locale, 1440, function() 
{ 
    return $this->category->getAllOrderByRank(); 
}); 

あなたはenに設定している場合に設定している場合は、Categories.enクエリを引くでしょうその方法deCategories.deなど

私は翻訳をどこでやっていますか?これはおそらく、キャッシュされたクエリの影響を受けてはいけません。

+0

ありがとうSamsquanch。ほとんどの翻訳はデータベースに保存されています。 – rafiaTech

+0

@rafiaTechどのキャッシュドライバを使用していますか?申し訳ありませんが、私はなぜあなたがデータベースからそれを読むのではなく、キャッシュメモリからテキストを読んでいるのかわかりません...キャッシュは常に高速ですか?その場合は、データのほとんどにキャッシュ戦略を適用する必要があります。 – JCarlos