Laravel 5.8 + получить массив столбцов и строк из запроса - PullRequest
0 голосов
/ 19 сентября 2019

Относительно новичок в Laravel и попытка создать REST API, который в ответ будет иметь json, который разбит на строки и столбцы запроса

Итак, код, используемый для генерации json:1003 *

$r = array(
        'cols' => array_keys(get_object_vars(Dd_hr::take(2)->get())),
        'rows' => Dd_hr::take(2)->get()
    );
return response()->json($r, 201);

По сути, json должен выглядеть примерно так:

{"cols":[{"id", "user_name"}],"rows":[{"710206","user"}]}

Но на самом деле это выглядит так:

{"cols":[],"rows":[{"id":"710206","user_name":"user"}]}

Может ли кто-нибудь помочь мне решить эту проблему?

Результат dd(Dd_hr::take(2)->get()->toArray()):

array:2 [▼
  0 => array:27 [▼
    "rn" => "1"
    "id" => "710206"
    "user_name" => "user"
  ]
  1 => array:27 [▼
    "rn" => "2"
    "id" => "710207"
    "user_name" => "user"
  ]
]

1 Ответ

1 голос
/ 19 сентября 2019

Не нашел способа сделать это должным образом, так что здесь идет старый добрый array_map.

Это не удаляет ключ "rn".Если вы хотите выбрать ключи из выбора, который вы можете, это даже облегчит создание JSON, поскольку у вас уже есть 'cols'.

$res_array = Dd_hr::take(2)->get()->toArray();

$cols = array_keys($res_array[0]);

$rows = array_map(function($row){
            return array_values($row);
        }, $res_array);

return response()->json(array('cols'=>$cols, 'rows'=>$rows), 201);

Это возвращает: "{" cols ": [ "р-н", "идентификатор", "user_name"], "строка": [[ "1", "710206", "пользователь"], [ "2", "710207", "пользователь"]]}»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...