首页 > 解决方案 > 在laravel中插入多条记录

问题描述

如何在 bills_infos 表中创建多个记录?它获取数据并存储在数组变量中,甚至我也可以使用 compact 函数访问它。我已经标记了问题从哪里开始。

public function store(Request $request){
    $request->validate([
            'from'=>'required',
            'to'=>'required',
            'textbox1'=>'required',
            'rate1'=>'required',
            'qty1'=>'required',
    ]);
    $store_bill=new Bills();
    $store_bill->from=request('from');
    $store_bill->name=request('to');
    $store_bill->discount=request('discount');
    if(is_null($store_bill->discount))
    {
        $store_bill->discount=0;
    }
    $store_bill->save();
    $invoice_no=Bills::orderBy('created_at','desc')->pluck('id')->first();
    for($i=1;$i<=10;$i++)
    {
        $item_name[$i]=request('textbox'.$i);
        $amount[$i]=request('rate'.$i);
        $quantity[$i]=request('qty'.$i);
    }
    //return compact('item_name','amount','quantity');
    //Works fine till here.
    /* Not Working From Here. */
    for($i=1;$i<=10;$i++)
    {
        if(!(is_null($item_name[$i]) || is_null($amount[$i]) || is_null($quantity[$i])))
        {
            $store_bills_info=new Bills_Infos();
            $store_bills_info->bills_id=$invoice_no;
            $store_bills_info->item_name=$item_name[$i];
            $store_bills_info->amount=$amount[$i];
            $store_bills_info->quantity=$quantity[$i];
            $store_bills_info->total=$amount[$i]*$quantity[$i];
            $store_bills_info->save();
            //return compact('store_bills_info');
            return view('print')->with('invoice_no',$invoice_no);
        }
    }
    return "Invoice can't be created due to some error";
}

标签: phplaravel

解决方案


您可以改用 laravel 的“插入”功能。例如。

 for($i=1;$i<=10;$i++)
        {
            if(!(is_null($i`enter code here`tem_name[$i]) || is_null($amount[$i]) || is_null($quantity[$i])))
           {
                $store_bills_info[$i]['bills_id']   =$invoice_no;
                $store_bills_info[$i]['item_name']  =$item_name[$i];
                $store_bills_info[$i]['amount']     =$amount[$i];
                $store_bills_info[$i]['quantity']   =$quantity[$i];
                $store_bills_info[$i]['total']      =$amount[$i]*$quantity[$i];
            }
        }
Bills_Infos::insert($store_bills_info);

作为循环中的查询不是一个好的做法,我们应该避免这样做。


推荐阅读