Как сохранить массив данных в формате JSON с помощью контроллера LARAVEL

#database #laravel #eloquent

#База данных #laravel #красноречивый

Вопрос:

Я хочу сохранить эти данные, сгенерированные create.blade.php посмотреть,

после нажатия кнопки отправки вывод журнала консоли выглядит следующим образом

 { 
 "kode_trx": "PO-2019030004", 
 "no_po": "0005/DIN /III/2019", 
 "pic_po": "Carlo Donadini", 
 "pic_telp": " 39438778020", 
 "top": "RRRRR", 
 "supplier_id": "1", 
 "дата доставки": "28-03-2019", 
 "created_by_id": "1", 
 "total_barang": "7", 
 "grand_total": "122500000", 
 "tb_detail_po": [
 [ 
"BRG-2019030004", 
 "Электрическая фритюрница", 
"SC-81", 
"290", 
"440", 
"310", 
"4", 
"17500000", 
"70000000", 
 " ", 
"4", 
"PO-2019030004", 
"0005/DIN /III/2019", 
"1", 
 "5"
 ], 
[ 
"BRG-2019030004", 
 "Электрическая фритюрница", 
"SC-81", 
"290", 
"440", 
"310", 
"3", 
"17500000", 
"52500000", 
 " ", 
"4", 
"PO-2019030004", 
"0005/DIN /III/2019", 
"1", 
 "5"
 ]
 ]
}

итак, я хочу сохранить его в 2 разных таблицах: table purchases и purchase_details

как я предполагаю написать свой код в POController в хранилище методов? ???

Комментарии:

1. Вы уже создали эти схемы баз данных? Используете ли вы модели?

2. Не уверен, в чем вопрос? Вам нужна помощь со схемой базы данных? Как обращаться с данными и преобразовывать их в удобные для работы массивы или коллекции? Вам нужна помощь с моделями Eloquent? Вам нужна помощь со всем, что описано выше? Тогда как вам удалось создать create.blade.php работает? У меня куча вопросов.

3. @thisiskelvin да, я уже создаю схему базы данных, я хочу сохранить данные в таблице PO, а затем в таблице details_PO, связанной с таблицей PO, на основе id или kode_trx

Ответ №1:

Вы можете сохранить данные в таблице purchase , как показано ниже

 class POController extends Controller
{
    public function store(Request $request)
    {
        $purchase = Purchase::create([
            "id_penerimaan" => $request->no_nota,
            "id_customer" => $request->customer,
            "id_karyawan" => $request->karyawan,
            "tgl_penerimaan" => CarbonCarbon::now()->format('Y-m-d H:i:s'),            
        ]);

        return $purchase;
    }
}
  

А для таблицы, purchase_details если вы используете Observer, было бы здорово

Пример Observer :

 class UserObserver
{
    public function created(Purchase $purchase)
    {
        if (request()->tb_detail_po) {
            foreach(request()->tb_detail_po as $detail) {
                PurchaseDetail::create([
                    'id_purchase' => $purchase->id,
                    'id_penerimaan' => request()->no_nota,
                    'id_karyawan' => $detail[9],
                    'id_kategori' => $detail[8],
                    'sn_barang' => $detail[1],
                    'nama_barang' => $detail[0],
                    'kelengkapan' => $detail[2],
                    'keluhan' => $detail[3],
                    'id_garansi' => $detail[10],
                    'id_status' => '1',
                    'kondisi' => '1'
                ]);
            }
        }
    }
}
  

Комментарии:

1. можете ли вы помочь мне с синтаксисом CI для синтаксиса laravel?

2. Я изменил код с данными, как вы просили, вы можете попробовать

Ответ №2:

 $result = $request->all();
$created = Your Model::create([Your Data For Table 1]);
if($created) {
   foreach($request->tb_detail_po as $details) {
      Your Model2::create([Your Detail Data For Table 2]);
   }
}
  

Ответ №3:

 Try to use **JSON_DECODE($data)** OR **JSON_ENCODE($data)**