我在使用 Excel 匯入時遇到了插入值的問題。
還有我的 App\Imports
<?php
namespace App\Imports;
use App\Models\Pelanggan;
use Maatwebsite\Excel\Concerns\ToModel;
class PelangganImport implements ToModel
{
/**
* @param array $row
*
* @return \Illuminate\Database\Eloquent\Model|null
*/
public function model(array $row)
{
return new Pelanggan([
'id_pelanggan' => $row[0],
'nama_pelanggan' => $row[1],
'alamat1_pelanggan' => $row[2],
'alamat2_pelanggan' => $row[3],
'id_kategori_pelanggan' => $row[4],
'id_channel' => $row[5],
'id_outlet' => $row[6],
]);
if ($row [7]){
$dataArray['id_subdist'] = $row[7];
}
}
}
在 Migrate 表上,我被默認設定為“DUMMY”
$table->string('id_subdist',30)->default('DUMMY')->comment('id_subdist/dso');
我使用的是 laravel 8.6,我的資料庫是 MySql
uj5u.com熱心網友回復:
如果您設定了資料庫表列默認值,那么如果您在向表中輸入新行時指定任何值,它將輸入默認值。
匯入時,您可以進行檢查,如果id_subdist可用則添加到資料庫中,如果不可用則讓資料庫處理它并自動添加默認值。
$dataArray = [
'id_pelanggan' => $row[0],
'nama_pelanggan' => $row[1],
'alamat1_pelanggan' => $row[2],
'alamat2_pelanggan' => $row[3],
'id_kategori_pelanggan' => $row[4],
'id_channel' => $row[5],
'id_outlet' => $row[6]
];
if ($row[7]){
$dataArray['id_subdist'] = $row[7];
}
return new Pelanggan($dataArray);
id_subdist如果不可用,資料庫將自動輸入默認值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/355536.html
