如何在bills_infos表中多个记录? 它获取数据并将其存储在数组变量中,甚至我都可以使用紧凑函数来访问它。我已从问题的开始处进行标记。
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";
}
答案 0 :(得分:1)
您可以改用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);
作为一种不好的循环查询,我们应该避免这样做。
答案 1 :(得分:0)
它不起作用,因为当循环处于0
迭代中时,您使用了return
!
然后您的循环将不进行下一个迭代。
当您在PHP函数中返回某些内容时,此后将不会被编译。
因此,只需在for
之后移动您的回报即可。