PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Saturday, January 22, 2022

[FIXED] insert into using default value on database

 January 22, 2022     laravel, mysql, php     No comments   

Issue

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


Solution

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.



Answered By - Dula
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home
View mobile version

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing