File: //home/armgroup/libs/app/Imports/CategoriesImport.php
<?php
namespace App\Imports;
use App\Models\Category;
use App\Models\Product;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\SkipsEmptyRows;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Imports\HeadingRowFormatter;
HeadingRowFormatter::default('none');
class CategoriesImport implements SkipsEmptyRows, ToCollection, WithHeadingRow, WithValidation
{
public function collection(Collection $rows)
{
$categories = [];
foreach ($rows as $row) {
$categories[] = [
'id' => $row['term_id'],
'parent_id' => $row['parent'] ?: null,
'name' => $row['name'],
'slug' => $row['slug'],
'description' => $row['description'],
'status' => 1,
'type' => Product::class,
'created_at' => now(),
'updated_at' => now(),
];
}
Category::insert($categories);
}
public function rules(): array
{
return [];
}
public function batchSize(): int
{
return 1000;
}
}