Version

Theme

Components

Rendering a schema in a Blade view

NOTE

Before proceeding, make sure filament/schemas is installed in your project. You can check by running:

composer show filament/schemas

If it’s not installed, consult the installation guide and configure the individual components according to the instructions.

Setting up the Livewire component

First, generate a new Livewire component:

php artisan make:livewire ViewProduct

Then, render your Livewire component on the page:

@livewire('view-product')

Alternatively, you can use a full-page Livewire component:

use App\Livewire\ViewProduct;
use Illuminate\Support\Facades\Route;

Route::get('products/{product}', ViewProduct::class);

You must use the InteractsWithSchemas trait, and implement the HasSchemas interface on your Livewire component class:

use Filament\Schemas\Concerns\InteractsWithSchemas;
use Filament\Schemas\Contracts\HasSchemas;
use Livewire\Component;

class ViewProduct extends Component implements HasSchemas
{
    use InteractsWithSchemas;

    // ...
}

Adding the schema

Next, add a method to the Livewire component which accepts a $schema object, modifies it, and returns it:

use Filament\Schemas\Schema;

public function productSchema(Schema $schema): Schema
{
    return $schema
        ->components([
            // ...
        ]);
}

Finally, render the schema in the Livewire component’s view:

{{ $this->productSchema }}

NOTE

filament/schemas also includes the following packages:

  • filament/actions
  • filament/support

These packages allow you to use their components within Livewire components. For example, if your schema uses Actions, remember to implement the HasActions interface and use the InteractsWithActions trait on your Livewire component class.

If you are using any other Filament components in your schema, make sure to install and integrate the corresponding package as well.

Edit on GitHub

Still need help? Join our Discord community or open a GitHub discussion

Previous
Rendering notifications outside of a panel