如何使用方法firstOr这样在ex中创建laravel
我尝试过如下操作,这样做很好吗?
$insert[] = [
'bulan' => $bulan,
'tahun' => $tahun,
'nama_pkp' => $v["nama_pkp"],
'keterangan'=> $v["keterangan"],
'no_faktur_pajak' => $v["no_faktur_pajak"],
'tgl_faktur_pajak' => $tgl_faktur_pajak_format,
'ref' => $v["ref"],
'dpp' => $v["dpp"],
'ppn' => $ppn,
'invoice_no'=> $v["invoice_no"],
'nama_tenant' => $v["nama_tenant"],
'pph_4_deyon' => $v["pph_4_deyon"],
'pph_4_tenant' => $v["ppn"],
'no_p_l_tenant' => $v["no_potong_dan_lapor_tenant"],
'bukpot_oleh_tenant'=> $v["bukti_potong_oleh_tenant"],
'tgl_p_l_penyewa' => $tgl_p_l_penyewa_format,
'pph_p_l_tenant'=> $v["pph_potong_dan_lapor_tenant"],
'note' => $v["note"],
'checklist' => $v["checklist"],
'selisih' => $selisih,
];
$insertData[] = Data::firstOrCreate($insert);
我有这样的错误
语法错误或访问冲突:1064您的SQL错误 句法;检查与您的MariaDB服务器相对应的手册 版本
我有添加代码AppServiceProvider
Schema::defaultStringLength(191);
我的代码怎么了?
答案 0 :(得分:0)
我假设您正在检查数据库中的所有列,这看起来应该更加整洁
<div class="flex-parent">
<div class="flex">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
答案 1 :(得分:0)
您已将多维数组传递给firstOrCreate
,
firstOrCreate()在找到匹配项之前检查所有存在的参数。如果并非所有参数都匹配,则将创建该模型的新实例。
如果只想检查特定的字段,则将firstOrCreate(['field_name'=>'value'])与数组中的仅一项配合使用。这将返回第一个匹配项,如果找不到匹配项,则创建一个新项。
如果在循环中使用它,则 应该是这样
foreach ($variable as $v) {
$insert = [
'bulan' => $bulan,
'tahun' => $tahun,
'nama_pkp' => $v["nama_pkp"],
'keterangan'=> $v["keterangan"],
'no_faktur_pajak' => $v["no_faktur_pajak"],
'tgl_faktur_pajak' => $tgl_faktur_pajak_format,
'ref' => $v["ref"],
'dpp' => $v["dpp"],
'ppn' => $ppn,
'invoice_no'=> $v["invoice_no"],
'nama_tenant' => $v["nama_tenant"],
'pph_4_deyon' => $v["pph_4_deyon"],
'pph_4_tenant' => $v["ppn"],
'no_p_l_tenant' => $v["no_potong_dan_lapor_tenant"],
'bukpot_oleh_tenant'=> $v["bukti_potong_oleh_tenant"],
'tgl_p_l_penyewa' => $tgl_p_l_penyewa_format,
'pph_p_l_tenant'=> $v["pph_potong_dan_lapor_tenant"],
'note' => $v["note"],
'checklist' => $v["checklist"],
'selisih' => $selisih,
];
$insertData[] = Data::firstOrCreate($insert);
}
没有其他方法可以遍历大数组