Laravel - 根据语言获取数据库数据的好方法

时间:2018-01-08 16:02:19

标签: php laravel laravel-5

我正在编写一个后端,管理员可以在其中编辑前端的不同文本。

该网站有大约20-30个不同的文本段落,这些段落将以相应的语言显示,具体取决于用户是在前端选择英语还是德语。

对于不同的文本语言,我通常使用Laravel语言包。但是,由于要在后端更改数据,因此我必须根据所选语言动态获取数据库中的数据。

现在我正在寻找一种从数据库中获取正确数据的好方法,而无需为每个文本段落进行数据库查询。

数据库虚拟数据如下所示:

enter image description here

使用此代码:

__init__.py

这2个请求适用于2个文本段落。我现在必须对20-30个其他文本段落做同样的事情。我想通过指定此刀片所需的所有“标题”来询问是否有更好的方法在一个查询中汇总它们。

或许是另一种方式。需要另外一种方法来做到这一点,而不用总是做20-30个查询。至少我希望以另一种方式。

如果有人知道更好的方式,我很乐意看到如何在视图中的正确位置输出正确的数据。因为我现在还没有找到更好的方法..

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您可以使用一个查询加载所有翻译:

$texts = Texts::whereIn('title', ['hello', 'about'])
     ->where('code', config('app.locale'))
     ->get()

然后只使用这个系列。例如,您可以使用firstWhere()方法:

{{ $texts->firstWhere('title', 'hello')->text }}

答案 1 :(得分:2)

这个要求不是新的,你可以依靠解决同一问题的现有解决方案。 我建议您按translation查看waavi作曲家包,请参阅:

waavi/translation

这应该是你正在寻找的。