Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
import
jaguarjack/catchadmin
claude-code
framework
modules
management
permissions
catchadmin

Generate Excel import class for CatchAdmin module.

Install
php artisan boost:add-skill jaguarjack/catchadmin

Save this content to: .claude/skills/08-import/SKILL.md

# Step 8: Generate Import Class

创建数据导入类。

## File Location

```
modules/{Module}/Import/{Model}.php
```

## Template

```php
<?php

namespace Modules\{Module}\Import;

use Catch\Support\Excel\Import;
use Illuminate\Support\Collection;
use Modules\{Module}\Models\{Model};

class {Model} extends Import
{
    public function collection(Collection $rows): void
    {
        // Skip header row
        $rows->skip(1)->each(function ($row) {
            {Model}::create([
                'name' => $row[0],
                // map other columns
            ]);
        });
    }
}
```

## Column Mapping

Excel 列索引从 0 开始:
- Column A = `$row[0]`
- Column B = `$row[1]`
- Column C = `$row[2]`

## With Validation

```php
public function collection(Collection $rows): void
{
    $rows->skip(1)->each(function ($row, $index) {
        $data = [
            'name' => $row[0] ?? null,
            'email' => $row[1] ?? null,
        ];

        $validator = Validator::make($data, [
            'name' => 'required|string|max:100',
            'email' => 'required|email',
        ]);

        if ($validator->fails()) {
            return; // Skip invalid row
        }

        {Model}::create($data);
    });
}
```

## Controller Usage

```php
public function import(Request $request, {Model}Import $import)
{
    return $import->import($request->file('file'));
}
```

Step 8: Generate Import Class

创建数据导入类。

File Location

modules/{Module}/Import/{Model}.php

Template

<?php

namespace Modules\{Module}\Import;

use Catch\Support\Excel\Import;
use Illuminate\Support\Collection;
use Modules\{Module}\Models\{Model};

class {Model} extends Import
{
    public function collection(Collection $rows): void
    {
        // Skip header row
        $rows->skip(1)->each(function ($row) {
            {Model}::create([
                'name' => $row[0],
                // map other columns
            ]);
        });
    }
}

Column Mapping

Excel 列索引从 0 开始:

  • Column A = $row[0]
  • Column B = $row[1]
  • Column C = $row[2]

With Validation

public function collection(Collection $rows): void
{
    $rows->skip(1)->each(function ($row, $index) {
        $data = [
            'name' => $row[0] ?? null,
            'email' => $row[1] ?? null,
        ];

        $validator = Validator::make($data, [
            'name' => 'required|string|max:100',
            'email' => 'required|email',
        ]);

        if ($validator->fails()) {
            return; // Skip invalid row
        }

        {Model}::create($data);
    });
}

Controller Usage

public function import(Request $request, {Model}Import $import)
{
    return $import->import($request->file('file'));
}
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core