Импорт в Filament
Давайте запустим импорт. Из шапки списка можно принять файл и создать строки по его содержимому. Смотрим на /admin/posts.
ImportAction связывают
с классом импортёра методом
importer. Кнопку ставят
в headerActions таблицы.
Откроем PostsTable.php
и укажем импортёр:
<?php
namespace App\Filament\Resources\Posts\Tables;
use App\Filament\Imports\PostImporter;
use Filament\Actions\ImportAction;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class PostsTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('title'),
])
->headerActions([
ImportAction::make()
->importer(PostImporter::class),
]);
}
}
?>
Класс импортёра описывает, какие поля читать из файла:
<?php
namespace App\Filament\Imports;
use App\Models\Post;
use Filament\Actions\Imports\ImportColumn;
use Filament\Actions\Imports\Importer;
class PostImporter extends Importer
{
protected static ?string $model = Post::class;
public static function getColumns(): array
{
return [
ImportColumn::make('title'),
];
}
}
?>
Дайте загрузить список работников из файла.