How to use the resources outside of panel

I'm using filament table on a custom Livewire page, which is working just as expected. However, i found the finished class is just really long and messy. Especially for the action part, for each table, i need to set up actions for view, create, edit, and delete. Each action will then contain more code such as forms, hooks, notifications, etc... Putting everything inside one function makes the code very hard to read and manage.
public function table(Table $table): Table
{
return $table
->query(User::query())
->columns([
// columns here
])
->headerActions([
// actions here
])
->actions([
// more actions here
]);
}
public function table(Table $table): Table
{
return $table
->query(User::query())
->columns([
// columns here
])
->headerActions([
// actions here
])
->actions([
// more actions here
]);
}
I then found out you can generate filament resources for the model under panel section, it has the information needed to render table and form, also individual pages to view, create, edit, and delete the model. It would make the table function much cleaner and easier to manage if I can use the resources class from filament. I did get the resources to works inside filament panel, but i cant get it working inside my custom Livewire component. To be more specific, the data table works fine. But none of the action works, it opens empty modal. Would be much appriciate if someone could point me in the right direction. The Livewire class
<?php

namespace App\Livewire\UserTable;

use App\Filament\Resources\UserResource;

public function table(Table $table): Table
{
return UserResource::table($table);
}
<?php

namespace App\Livewire\UserTable;

use App\Filament\Resources\UserResource;

public function table(Table $table): Table
{
return UserResource::table($table);
}
The Livewire view
<div>
{{ $this->table }}
</div>
<div>
{{ $this->table }}
</div>
1 Reply
Dennis Koch
Dennis Koch3mo ago
You probably need to include <x-filament-actions::modals /> Doesn't really makes sense if empty modals work You use both on your component?
use InteractsWithTable;
use InteractsWithForms;
use InteractsWithTable;
use InteractsWithForms;
Want results from more Discord servers?
Add your server