我有一个在Laravel 5.2中构建的网站,支持多种语言。大多数网站内容都来自MySQL数据库。我缓存了大部分查询。例如:
$categories = Cache::remember('Categories', 1440, function()
{
return $this->category->getAllOrderByRank();
});
问题是当我访问网站的英文版时,查询结果会被保存。然后,当我将语言更改为Deutsch时,查询仍然被缓存并显示数据库中的英语数据。你们对我如何处理这个问题有什么建议吗?
谢谢
答案 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
等。
我想知道,你在哪里翻译?这可能不应受缓存查询的影响。