Laravel 5查询缓存

时间:2016-07-20 18:46:24

标签: laravel caching laravel-5.2

我有一个在Laravel 5.2中构建的网站,支持多种语言。大多数网站内容都来自MySQL数据库。我缓存了大部分查询。例如:

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

问题是当我访问网站的英文版时,查询结果会被保存。然后,当我将语言更改为Deutsch时,查询仍然被缓存并显示数据库中的英语数据。你们对我如何处理这个问题有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我在缓存名称中包含了语言环境:

private void runcmd(string command)
{
    p.StandardInput.WriteLine(command);
    var output = p.StandardOutput.ReadToEnd();
    TextBox1.Text = output;
}

这样,如果您设置为DIR,则会提取var output查询,如果您设置为$locale = App::getLocale(); $categories = Cache::remember('Categories.' . $locale, 1440, function() { return $this->category->getAllOrderByRank(); }); ,则会获得en等。

我想知道,你在哪里翻译?这可能不应受缓存查询的影响。