#php #mysql #json #laravel
#php #mysql #json #laravel
Вопрос:
Я пытаюсь вставить этот многомерный массив из вложенного json, но я не уверен, как с этим справиться. При печати массив отображается следующим образом:
{
"CompanyCode": "12345",
"CustomerNumber": "ABC0012300DEF",
"RequestID": "2017262221400000001975",
"ChannelType": "2014",
"CustomerName": "Customer Virtual Account",
"CurrencyCode": "IDR",
"PaidAmount": "60000.00",
"TotalAmount": "100000.00",
"SubCompany": "",
"TransactionDate": "15/03/2014 22:07:40",
"Reference": "",
"DetailBills": [
{
"BillAmount": "25000.00",
"BillNumber": "1234567890",
"BillSubCompany": "00002",
"BillReference": "12345678900"
},
{
"BillAmount": "35000.00",
"BillNumber": "2234567891",
"BillSubCompany": "00003",
"BillReference": "22345678901"
}
],
"FlagAdvice": "N",
"Additionaldata": ""
}
вот мой код в laravel с db::insert :
DB::insert('insert into bca_company_payload (companyCode, customerNumber, requestID, channelType, customerName, paidAmount, totalAmount, subCompany, transactionDate, reference, flagAdvice, addtionalData) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', [$company_code, $customer_number, $request_id, $channel_type, $customer_name, $currency_code, $paid_amount, $total_amount, $sub_company, $transaction_date, $reference, $detail_bills, $flag_advice, $addtional_data]);
return response()
->json('The data was successfully inserted', 200)
->header('Access-Control-Allow-Origin', '*');
Комментарии:
1. преобразуйте ответ JSON в массив, затем извлеките из него значения
2. как использовать это с кодом?
Ответ №1:
вы можете сделать это,
//I am asuming that you are taking the json from you the $request
$responseData = json_decode($request->response);
//if you are using laravel 5.8 you need you Arr class like this Arr::only()
$data = array_only($responseData , ['CompanyCode', 'CustomerNumber', 'RequestID', 'ChannelType', 'CustomerName', 'PaidAmount', 'TotalAmount', 'SubCompany', 'TransactionDate', 'Reference', 'FlagAdvice', 'AddtionalData'])
DB::insert('insert into bca_company_payload (companyCode, customerNumber, requestID, channelType, customerName, paidAmount, totalAmount, subCompany, transactionDate, reference, flagAdvice, addtionalData) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $data);
Комментарии:
1. как вставить подробные таблицы, сэр?