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