requiredMapping() ->exampleHeader('Item Code') ->label('Item Code') ->rules(['required']), ImportColumn::make('description') ->requiredMapping() ->exampleHeader('Description') ->label('Description') ->rules(['required']), ImportColumn::make('hourly_quantity') ->requiredMapping() ->exampleHeader('Hourly Quantity') ->label('Hourly Quantity') ->numeric() ->rules(['required', 'integer']), ImportColumn::make('plant') ->requiredMapping() ->exampleHeader('Plant Name') ->label('Plant Name') ->relationship(resolveUsing:'name') ->rules(['required']), ]; } public function resolveRecord(): ?Item { // return Item::firstOrNew([ // // Update existing records, matching them by `$this->data['column_name']` // 'email' => $this->data['email'], // ]); return new Item; } public static function getCompletedNotificationBody(Import $import): string { $body = 'Your item import has completed and '.number_format($import->successful_rows).' '.str('row')->plural($import->successful_rows).' imported.'; if ($failedRowsCount = $import->getFailedRowsCount()) { $body .= ' '.number_format($failedRowsCount).' '.str('row')->plural($failedRowsCount).' failed to import.'; } return $body; } }