| id | laravel-filament-dev |
| name | Laravel & Filament Development |
| description | Build features for AgileTracker using Laravel 11 and FilamentPHP 3 |
| enabled | true |
Laravel + Filament Development Workflow
Creating a new Model/Resource
- Migration:
php artisan make:migration create_xxx_table
- Include all columns, foreign keys, indexes
- Use
$table->id(), $table->timestamps(), $table->softDeletes()
- Model: Create in
app/Models/ with:
$fillable or $guarded
- Relationships (
hasMany, belongsTo, belongsToMany)
- Spatie Activitylog trait:
use LogsActivity;
- Filament Resource:
php artisan make:filament-resource Xxx
- Define
form(), table(), getPages(), getRelations()
- Add filters, actions, bulk actions
- Policy:
php artisan make:policy XxxPolicy --model=Xxx
- Seeder: Add to
DatabaseSeeder or create standalone
- Test: Feature test for CRUD + permissions
Filament Patterns
Form fields
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\RichEditor;
use Filament\Forms\Components\Toggle;
Table columns
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\BadgeColumn;
use Filament\Tables\Columns\IconColumn;
Filters
use Filament\Tables\Filters\SelectFilter;
use Filament\Tables\Filters\TernaryFilter;
Actions
EditAction, DeleteAction in table
- Custom actions:
Action::make('archive')->action(fn() => ...)
Spatie Permission
- Roles:
admin, project_manager, developer, viewer
- Check in Filament:
->visible(fn() => auth()->user()->can('...'))
- Policies use
$user->hasPermissionTo('...') or $user->hasRole('...')