laravel :: вставка некоторого значения массива в одну таблицу и других значений в другую таблицу - PullRequest
0 голосов
/ 12 ноября 2018

Я загружаю файл Excel, и в этом файле Excel заголовки - это имена полей двух разных таблиц, и я хочу вставить соответствующие значения из этих файлов Excel в эти две разные таблицы из одного массива $ dataArray:

    public function sapinvoiceuploads(Request $request) {
    if($request->hasFile('target_file')){ 
       $originalfile=$request->file('target_file')->getRealPath();
       $dataall = Excel::load($originalfile, function ($reader) {
            })->get();
           // echo '<pre>';
           foreach ($dataall->toArray() as $key => $row) {
              // print_r($row);
               if(!empty($row['party_id'])) {

                        $dataArray[] =
                                    [
                                    'sapinvno' => $row['sapinvno'], //Invoice No.
                                    'Invoice Date' => $row['Invoice Date'],
                                    //'Customer Po No.' => $row['Customer Po No.'],
                                    //'Custome Po Date' => $row['Custome Po Date'],
                                    //'Payment Due Date' => $row['Payment Due Date'],
                                    //'Payment Terms' => $row['Payment Terms'],
                                    'productname' => $row['productname'],// Description of Goods
                                    'shippingcharge' => $row['shippingcharge'],//Handling Charges
                                    'productquantity' => $row['productquantity'],//Quantity
                                    'bundle' => $row['bundle'],
                                    'hsn' => $row['hsn'],
                                    'productprice' => $row['productprice'],
                                    'ordersubtotal' => $row['ordersubtotal'],
                                    'gst' => $row['gst'],//IGST Amount
                                    'ordertotal' => $row['ordertotal'],

                                ];       
                    }
                }
           if (!empty($dataArray) && count($dataArray)>0) {
            invoice::insert($dataArray);
            invoiceproducts::insert($dataArray);
           }
           return Redirect::back()->with('success', 'File Uploaded Successfully');
       } 
       else{
        return Redirect::back()->with('error', 'Please Choose A File to Upload');
   }


}

Ответы [ 2 ]

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

вы можете использовать only и except методы коллекции Laravel

$excluded = ['Customer Po No.', 'Custome Po Date', 'Payment Due Date', 'Payment Terms'];
invoice::insert(collect($dataArray)->except($excluded)->toArray());
invoiceproducts::insert(collect($dataArray)->only($excluded)->toArray());
0 голосов
/ 12 ноября 2018

Попробуйте, вы разделите свои данные на 2 массива

    public function sapinvoiceuploads(Request $request) {
if($request->hasFile('target_file')){ 
   $originalfile=$request->file('target_file')->getRealPath();
   $dataall = Excel::load($originalfile, function ($reader) {
        })->get();
       // echo '<pre>';
       foreach ($dataall->toArray() as $key => $row) {
          // print_r($row);
           if(!empty($row['party_id'])) {

                    $dataArray[] =
                                [
                                'sapinvno' => $row['sapinvno'], //Invoice No.
                                'Invoice Date' => $row['Invoice Date'],
                                'productname' => $row['productname'],// Description of Goods
                                'shippingcharge' => $row['shippingcharge'],//Handling Charges
                                'productquantity' => $row['productquantity'],//Quantity
                                'bundle' => $row['bundle'],
                                'hsn' => $row['hsn'],
                                'productprice' => $row['productprice'],
                                'ordersubtotal' => $row['ordersubtotal'],
                                'gst' => $row['gst'],//IGST Amount
                                'ordertotal' => $row['ordertotal'],

                            ];   
                    $dateArray2[] = 
                            [
                                'Customer Po No.' => $row['Customer Po No.'],
                                'Custome Po Date' => $row['Custome Po Date'],
                                'Payment Due Date' => $row['Payment Due Date'],
                                'Payment Terms' => $row['Payment Terms'],
                            ]    
                }
            }
       if (!empty($dataArray) && count($dataArray)>0 && !empty($dataArray2) && count($dataArray2)>0) {
        invoice::insert($dataArray);
        invoiceproducts::insert($dataArray2);
       }
       return Redirect::back()->with('success', 'File Uploaded Successfully');
   } 
   else{
    return Redirect::back()->with('error', 'Please Choose A File to Upload');
 }


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