[英]trying to insert data into two tables at once in laravel using foreign key
[英]Insert into two tables simultaneously primary key and foreign key using Laravel
我有兩個表'invoice','invoice_no'作為主鍵,'invoice_details','invoice_no'作為外鍵。 我想使用 Laravel 同時將數據插入到兩個表中。 問題是當我提交表單時,數據被存儲到發票表中,但沒有存儲到 invoice_details 中,這給了我完整性約束違規錯誤,外鍵是 null。
這是 controller 代碼:
public function insertInv(Request $request){
//insert into invice
$customer_name = $request->input('customer_name');
$c_email = $request->input('c_email');
$c_phone = $request->input('c_phone');
$billing_address = $request->input('billing_address');
$term = $request->input('term');
$order_date = $request->input('order_date');
$due_date = $request->input('due_date');
$discount = $request->input('discount');
$net_total = $request->input('net_total');
$paid = $request->input('paid');
$due = $request->input('due');
$payment_type = $request->input('payment_type');
$invoice_msg = $request->input('invoice_msg');
//insert into invoice_details
$invoice_no = $request->input('invoice_no');
$product_name = $request->input('state');
$inven_name = $request->input('country');
$unit = $request->input('unit');
$price = $request->input('price');
$qty = $request->input('cqty');
$sub_total = $request->input('sub_total');
//insert into invoice
$invo=array('customer_name'=>$customer_name,'c_email'=>$c_email,'c_phone'=>$c_phone,'billing_address'=>$billing_address,'term'=>$term,'order_date'=>$order_date,'due_date'=>$due_date,'discount'=>$discount,'net_total'=>$net_total,'paid'=>$paid,'due'=>$due,'payment_type'=>$payment_type,'invoice_msg'=>$invoice_msg );
DB::table('invoice')->insert($invo);
//insert into invoice_details
$invo_det=array('invoice_no'=>$invoice_no,'product_name'=>$product_name,'inven_name'=>$inven_name,'unit'=>$unit,'price'=>$price,'qty'=>$qty,'sub_total'=>$sub_total);
DB::table('invoice_details')->insert($invo_det);
return redirect()->back();
}
您可以使用insertGetId方法:
$invoiceId= DB::table('invoice')->insertGetId($invo);
$invo_det=array('invoice_no'=>$invoiceId,'product_name'=>$product_name,'inven_name'=>$inven_name,'unit'=>$unit,'price'=>$price,'qty'=>$qty,'sub_total'=>$sub_total);
DB::table('invoice_details')->insert($invo_det);
我還建議您在事務中執行此操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.