lundi 20 juillet 2020

Laravel Maatwebsite/Laravel-Excel Update if exist

I'm using This Package Maatwebsite/Laravel-Excel to import data from excel file

what I wanna do is check if the column exists before import data from excel file,

if so, then update otherwise insert

Model:

<?php

namespace App\Imports;

use App\Medicine;
use Carbon\Carbon;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Imports\HeadingRowFormatter;

HeadingRowFormatter::default('none');
class MedicineImport implements ToModel, WithHeadingRow
{
    protected $company_id;

    public function __construct($company_id)
    {
        $this->company_id = $company_id;
    }
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        $expire_date = empty($row['Expire Date']) ? $row['Expire Date'] : Carbon::instance(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($row['Expire Date']));
        return new Medicine([
            'name'         => $row['Name'],
            'price'        => $row['Price'],
            'expire_date'  => $expire_date,
            'company_id'    => $this->company_id,

        ]);
    }
}

Controller:

$company = Company::where('id',$id)->first();
    $medicines=DB::table('medicines')->where('company_id', $id)->delete();
    $company_id= $id;
    Excel::import(new MedicineImport($company_id),request()->file('file'));

    return redirect()->route('company.medicine.index',$company_id);

any ideas to do this?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire