我有一个语言表,其中包含以下列。
此表包含与我的应用程序不同部分相关的各种代码。例如,主屏幕可能会说“欢迎”,因此该短语的代码为“ welcome”。我将在表中存储3种不同语言的变体,并设置国家/地区代码。
示例数据集
country_code | code | value
------------------------------------------------
EN | welcome | Welcome
FR | welcome | Bienvenue
DE | welcome | herzlich willkommen
我正在尝试运行一个雄辩的查询,该查询将返回如下结果:想法是将结果按country_code分组,然后将每个结果的键设置为code列。
{
"EN": [
"welcome": {
"country_code": "EN",
"value": "Welcome",
"code": "welcome"
},
"goodbye": {
"country_code": "EN",
"value": "Goodbye",
"code": "goodbye"
}
],
"FR": [
"welcome": {
"country_code": "FR",
"value": "Bienvenue",
"code": "welcome"
},
"goodbye": {
"country_code": "FR",
"value": "Au revoir",
"code": "goodbye"
}
],
"DE": [
"welcome": {
"country_code": "DE",
"value": "Herzlich Willkommen",
"code": "welcome"
},
"goodbye": {
"country_code": "DE",
"value": "Auf Wiedersehen",
"code": "goodbye"
}
]
}
我尝试了以下雄辩的查询,但这并没有返回上面按国家(地区)代码分组的结果,但是随后该组中的结果没有为每个值设置键作为代码列。
$languages = \App\Language::all();
return $language->keyBy('code')->groupBy('country_code');
答案 0 :(得分:3)
您可以使用此:
Language::all()->groupBy('country_code')->map->keyBy('code');
这应该给您想要的结果。