【发布时间】:2014-07-08 11:26:51
【问题描述】:
我正在使用 Laravel 4 开发一个多语言网站,我正在使用一个名为 waavi 翻译的翻译包,简而言之,它会抓取 laravel 的语言文本文件并将它们保存到数据库中。
我在以连贯的方式检索数据以将它们与数据表一起显示以创建语言翻译界面时遇到问题。
表结构如下:
语言表:
id | locale | name
---------------------
1 | en | english
2 | fr | french
等等……
Language_entries 表:
id | language_id | namespace | group | item | text
--------------------------------------------------------------------
.....
9 | 1 | * | permissions | save.success | :name has successfully been saved.
....
102 | 2 | * | permissions | save.success | :name a bien été sauvegardé.
.....
我要查找的查询结果是:
group | item | en | fr
----------------------------------------------------------------------------------------------
permissions | save.success | :name has successfully been saved. | :name a bien été sauvegardé.
任何帮助将不胜感激!
【问题讨论】:
-
为什么需要这种方式的结果?如果你正在翻译,你不能只从 language_entries 内部连接语言中选择文本 language.id = language_entries.language_id where locale = "something" and group = 'something' and item = 'something'?当这取决于您在数据库中拥有多少语言环境时,您将如何知道查询中有多少列。该查询不会很灵活。
-
这种呈现结果集的方式的通用名称是“pivoting”。
-
@BojanKovacevic 我不会是唯一翻译网站的人,该界面将由客户端使用,我认为这种显示数据的方式对用户来说是有意义的。不过,我肯定会使用您的查询的变体来更新数据库。谢谢。
-
@OllieJones 这正是我要找的,我不熟悉这个词,快速搜索给了我很多可以学习的结果。是时候玩它了,谢谢;)
标签: php mysql sql laravel-4 pivot