Skip to main content
You are currently viewing the documentation for Filament 3.x, which is a previous version of Filament.Looking for the current stable version? Visit the 5.x documentation.
FilamentLaracasts

Build a Custom Form Layout

Watch the Build Advanced Components for Filament series on Laracasts - it will teach you how to build components, and you'll get to know all the internal tools to help you.
Dan Harrin
Dan Harrin
Instructor

View components

Aside from building custom layout components, you may create “view” components which allow you to create custom layouts without extra PHP classes.
use Filament\Forms\Components\View;

View::make('filament.forms.components.wizard')
This assumes that you have a resources/views/filament/forms/components/wizard.blade.php file.

Custom layout classes

You may create your own custom component classes and views, which you can reuse across your project, and even release as a plugin to the community.
If you’re just creating a simple custom component to use once, you could instead use a view component to render any custom Blade file.
To create a custom component class and view, you may use the following command:
php artisan make:form-layout Wizard
This will create the following layout component class:
use Filament\Forms\Components\Component;

class Wizard extends Component
{
    protected string $view = 'filament.forms.components.wizard';

    public static function make(): static
    {
        return app(static::class);
    }
}
It will also create a view file at resources/views/filament/forms/components/wizard.blade.php.

Rendering the component’s schema

Inside your view, you may render the component’s schema() using the $getChildComponentContainer() function:
<div>
    {{ $getChildComponentContainer() }}

Accessing the Eloquent record

Inside your view, you may access the Eloquent record using the $getRecord() function:
<div>
    {{ $getRecord()->name }}

Sponsored by