Из внешнего интерфейса я отправлю этот JSON в бэкэнд:
{
"tech": ["html"],
"city": "zurich"
}
Вот как я получаю данные динамически из моей базы данных:
public function user($uid, $selection, $tables) {
// 1. Query builder
$queryBuilder = $this->createQueryBuilder('u')->select($selection)->where('u.uid = :uid');
// 2. Get each table
foreach ($tables as $key => $value) {
$queryBuilder = $queryBuilder->innerJoin('App\Entity\\' . $value, $key)->andWhere("$key.uid = :uid");
}
// 3. Finish and return the query
return $queryBuilder
->setParameter('uid', $uid)
->getQuery()
->getResult()
;
}
Если я включу возврат этогометод в JSON, это будет результат:
{
"88": {
"data": [
{
"tech": "PHP",
"city": "Zurich"
},
{
"tech": "JavaScript",
"city": "Zurich"
},
{
"tech": "HTML",
"city": "Zurich"
}
],
"rank": 200
},
"33": {
"data": [
{
"tech": "HTML",
"city": "zurich"
}
],
"rank": 200
}
}
Таким образом, у нас есть информация о 2 пользователях (88
и 33
).Массив data
с идентификатором 33
выглядит хорошо, и так оно и должно быть.Но массив data
с идентификатором 88
выглядит испорченным.Вот как это должно выглядеть:
"data": [
{
"tech": ["PHP", "JavaScript", "HTML"],
"city": "Zurich"
}
]
Как мне это сделать?