首页 > 解决方案 > laravel query,redundant row will be inserted into to tabel invoice particulars.eg FROM table contains 6 rows,after exicuting TO table will 21 rows

问题描述

$ar = $po_id;
$variableAry=explode(",",$ar);
foreach($variableAry as $var1) {

    $details11=DB::table('po_estimations')
        ->where('po_number',$var1)
        ->select('*')
        ->get();

    foreach($details11 as $details)
    {
        $inserts[] = ['invoice_id' => $key,'shade' => $details_>project_shade,'unit' => $details->unit,'In_range' => $details->project_range,'brand_name' => $details->brand_name,'particulars_name' => $details->po_number,];
        DB::table('invoice_particulars')->insert($inserts); //saves redundant data
    }
}  

标签: phplaravel

解决方案


$inserts[]意味着推入阵列!所以每次执行时,它都会向数组中添加一个新项目。

你想要的是:

foreach($details11 as $details)
{
    $inserts = ['invoice_id' => $key,'shade' => $details_>project_shade,'unit' => $details->unit,'In_range' => $details->project_range,'brand_name' => $details->brand_name,'particulars_name' => $details->po_number,];
    DB::table('invoice_particulars')->insert($inserts); //saves redundant data
}

所以只需删除旁边的方括号$inserts[]即可$inserts


推荐阅读