Как сопоставить объект одному значению из этого объекта? - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу сопоставить свойство объекта user с его именем.
Я пытаюсь отобразить его таким образом, но это ничего не меняет.

Мой код для получения результатов:

$data = $stats
    ->with('user')
    ->get()
    ->map(function ($value, $key) {
        $value['user'] = $value['user']['name'];
        return $value;
    });

Текущие полученные данные:

{
    "data": [
        {
            "total": 4,
            "user": {
                "id": 3,
                "name": "test1"
            }
        }
    ]
}

Желаемыйрезультат:

{
    "data": [
        {
            "total": 4,
            "user": "test1"
        }
    ]
}

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Попробуйте этот код

$data = $stats
    ->with('user')
    ->get()
    ->map(function ($value, $key) {
        $userName = $value['user']['name'];
        unset($value['user']);
        $value['user'] = $userName;
        return $value;
    });
0 голосов
/ 17 декабря 2018

Как это:

$data = $stats
    ->with('user')
    ->get()
    ->map(function ($value, $key) {
        return [
            'total' => $value['total'],
            'user' => $value['user']['name'],
        ];
    });
...