DEV Community

Cover image for Filament: Generate Resource from Existing DB Schema
Sergio Peris
Sergio Peris

Posted on • Originally published at sertxu.dev

1

Filament: Generate Resource from Existing DB Schema

In Filament, you can generate a Filament Resource with the make:filament-resource Artisan command.

This command will generate an empty resource, that you can configure it as you like.

If you already have the migration and model done in your Laravel app, you can use the parameter --generate in order to let Filament try to guess the fields from your database.

php artisan make:filament-resource Model --generate
Enter fullscreen mode Exit fullscreen mode

For example, if you have a Tag model with a name and description fields, running the following command:

php artisan make:filament-resource Tag --generate
Enter fullscreen mode Exit fullscreen mode

Will generate the following resource:

class CategoryResource extends Resource
{
    // ...

    public static function form(Form $form): Form
    {
        return $form
            ->schema([
                Forms\Components\TextInput::make('name')
                    ->required()
                    ->maxLength(255),

                Forms\Components\TextInput::make('description')
                    ->required()
                    ->maxLength(255),
            ]);
    }

    // ...
}
Enter fullscreen mode Exit fullscreen mode

You should keep in mind the generation will not always be accurate, so check the code and make any necessary changes to it.

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay