Home > OS >  insert into using default value on database
insert into using default value on database

Time:11-11

I've facing problem insert value using Excel Import.

And there is my 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];

        }
    }
}

On Migrate table I was set default to "DUMMY"

$table->string('id_subdist',30)->default('DUMMY')->comment('id_subdist/dso');

I'm using laravel 8.6 and My database is MySql

CodePudding user response:

If you have set the database table column default value then it will enter the default value if you are specifying any value at the time when you are entering a new row to the table.

When importing you can have a check and if id_subdist is available then add to the database, if not let database handle it and add the default value automatically.

$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);

Database will automatically will enter the default value to id_subdist if it is not available.

  • Related