Dev*_*Wol 0 php laravel eloquent
我有一个语言表,其中包含以下列。
该表包含与我的应用程序的不同部分相关的各种代码。例如,主屏幕可能会显示“欢迎”,因此该短语的代码是“欢迎”。我会在表中存储 3 个不同语言的变体,并设置国家/地区代码。
示例数据集
country_code | code | value
------------------------------------------------
EN | welcome | Welcome
FR | welcome | Bienvenue
DE | welcome | herzlich willkommen
Run Code Online (Sandbox Code Playgroud)
我正在尝试运行一个雄辩的查询,该查询将返回如下结果:其想法是将结果按country_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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试了以下雄辩的查询,但这不会返回上面的内容,它确实按国家/地区代码分组,但组中的结果没有为每个值设置键作为代码列。
$languages = \App\Language::all();
return $language->keyBy('code')->groupBy('country_code');
Run Code Online (Sandbox Code Playgroud)
你可以使用这个:
Language::all()->groupBy('country_code')->map->keyBy('code');
Run Code Online (Sandbox Code Playgroud)
这应该会给你你想要的结果。
| 归档时间: |
|
| 查看次数: |
1788 次 |
| 最近记录: |