Laravel объединяет отдельные записи в одну запись - PullRequest
0 голосов
/ 23 ноября 2018

Привет, ребята, у меня есть 3 записи, которые я хочу объединить в одну запись JSON.Так, например, я делаю этот запрос:

$shopList = $inventory
->select('shop_code', 'barcode', 'product_code', 'matrix_level_code_1',
'matrix_level_code_2', 'matrix_level_code_3', 'qty')->get();
return response()->json($shopList);

Возвращает:

{
    "shop_code": "001",
    "barcode": "505455553989",
    "product_code": "ANXA-683B-V148",
    "matrix_level_code_1": "1Z",
    "matrix_level_code_2": "0",
    "matrix_level_code_3": "",
    "qty": 3
 }

Но я хочу, чтобы это отображалось как:

{
   "shop_code": "001",
   "barcode": "505455553989",
   "sku": "ANXA-683B-V148-1Z-0",
   "qty": 3
}

Этовозможный?спасибо

1 Ответ

0 голосов
/ 23 ноября 2018

Вы можете использовать concat в mysql, чтобы объединить больше результатов в один и присвоить им псевдоним с помощью пользовательского ключа.

$shopList = $inventory->select([
    'shop_code',
    'barcode',
    DB::raw('concat(product_code, "-", matrix_level_code_1, "-", matrix_level_code_2, "-", matrix_level_code_3) as sku'),
    'qty'
])->get();

Убедитесь, что вы поставили use DB; вверху.

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