У меня есть таблица языков со следующими столбцами.
Эта таблица содержит различные коды, которые относятся к различным разделам моего приложения. Например, на главном экране может появиться надпись «Добро пожаловать», поэтому код этой фразы «Добро пожаловать». Я бы в таблице сохранил 3 варианта на разных языках, и код страны был бы установлен.
Пример набора данных
country_code | code | value
------------------------------------------------
EN | welcome | Welcome
FR | welcome | Bienvenue
DE | welcome | herzlich willkommen
Я пытаюсь выполнить красноречивый запрос, который бы возвращал результат, подобный следующему: Идея состоит в том, чтобы результаты группировались по коду страны, а затем ключи каждого результата устанавливались как столбец кода.
{
"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');