簡體   English   中英

如何將其保存在數據庫中

[英]How to save it in database

在我的數據庫中,我有像id,product_id,company_name,service,qty,delivery_cost,delivery_date,order_status etc.

我查看我使用Jquery和Html和jquery在點擊添加更多按鈕時動態添加更多輸入字段product_id,service,delivery_cost,qty,delivery_date,order_status。在提交表單時,我在控制器上執行dd($allData);

我的問題是如何將這些數據保存在數據庫中

array:8 [▼
  "_token" => "gSddIeA11OBV60xU9YiDXn8fmsfkwxlQ85QmDdkQ"

  "service" => array:3 [▼
    0 => "cement"
    1 => "iron"
    2 => "steel"
  ]
  "qty" => array:3 [▼
    0 => "5"
    1 => "44"
    2 => "5"
  ]
  "delivery_cost" => array:3 [▼
    0 => "5465"
    1 => "553"
    2 => "554"
  ]
  "delivery_date" => array:3 [▼
    0 => "2016-12-16"
    1 => "2016-12-08"
    2 => "2016-12-17"
  ]
  "order_status" => "Confirm"
  "delivery_vehicle" => array:1 [▼
    0 => "Self_elivery"
   1 => "Self_elivery"
   2 => "Self_elivery"
  ]
]
public function store(Request $request)
    {
        $allData= $request->all();
        dd($allData);
         $product = new Order;


   }

我試試這個

public function store(Request $request)
    {


        $date = $request->get('delivery_date');
        $cost = $request->get('delivery_cost');
        $service = $request->get('service');//add quotes next to service

        foreach($date as $deliveryDate)
        {
           foreach($cost as $proAmount){
            $db = new Order;
            $db->delivery_date = $deliveryDate;
            $db->amount = $proAmount;
            $db->save();

        }
}
        return"ok";
} 

我試過這種方式,但它多次存儲相同的數據可能是因為循環內部的循環。我需要你的幫助將這些數據存儲在數據庫中

使用for()應該適合你:

$data = $request->all();

for ($i = 0; $i < count($data['delivery_date']); $i++) {
    $db = new Order;
    $db->delivery_date = $data['delivery_date'][$i];
    $db->delivery_cost = $data['delivery_cost'][$i];
    ....
    $db->save();
}

你可以嘗試這個如果你想使用foreach $ key會給你索引。

        $date = $request->get('delivery_date');
        $cost = $request->get('delivery_cost');
        $service = $request->get('service');

        foreach($date as $key=>$deliveryDate)
        {
            $db = new Order;
            $db->delivery_date = $deliveryDate;
            $db->amount = $cost[$key];
            $db->save();
        }

        return"ok";

希望這對你有所幫助。 詢問是否有任何疑問

批量插入而不是為每個插入運行新的SQL查詢(如果所有請求參數都存在於單個表中)。

  $data = [];

  foreach ($request->all() as $param => $val) {
    if( is_array($val) ) // Ignore string params. i.e. _token, order_status
    {
      foreach ($val as $key => $value) {

        $data[$index][$param] = $value;
        $data[$index]['created_at'] = \Carbon\Carbon::now();
        $data[$index]['updated_at'] = \Carbon\Carbon::now();

        $index++;
      }
      $index = 0;
    }
  }

  Model::insert($data);
Using foreach() should work for you very easy:

$inputdata = $request->all();

foreach ($inputdata as $key=>$val) {

    $dbdata = new Order;
    $dbdata ->delivery_date = $data['delivery_date'][$key];
    $dbdata ->delivery_cost = $data['delivery_cost'][$key];
    ....   
    $dbdata ->save();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM