Filament PHP ile Hızlı Admin Panel Geliştirme
z
zafer ak
Yazar
09 November 2025
2 dakika okuma
2 görüntülenme
Filament admin panel builder. Resources, forms, tables ve widgets. Laravel TALL stack admin çözümü.
Filament Nedir?
Filament, Laravel için TALL stack (Tailwind, Alpine, Livewire, Laravel) tabanlı admin panel builder'dır. Kod yazmadan güçlü admin paneller oluşturabilirsiniz.
Kurulum
composer require filament/filament
php artisan filament:install --panels
# Admin user oluştur
php artisan make:filament-user
Resource Oluşturma
php artisan make:filament-resource Post
# Dosyalar oluşur:
# app/Filament/Resources/PostResource.php
# app/Filament/Resources/PostResource/Pages/
Form Schema
public static function form(Form $form): Form
{
return $form->schema([
Forms\Components\TextInput::make('title')
->required()
->maxLength(255),
Forms\Components\Select::make('category_id')
->relationship('category', 'name')
->searchable()
->preload(),
Forms\Components\RichEditor::make('content')
->required()
->columnSpanFull(),
Forms\Components\FileUpload::make('image')
->image()
->directory('posts'),
Forms\Components\Toggle::make('is_published')
->default(true),
Forms\Components\DateTimePicker::make('published_at'),
]);
}
Table Schema
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\ImageColumn::make('image'),
Tables\Columns\TextColumn::make('title')
->searchable()
->sortable(),
Tables\Columns\TextColumn::make('category.name')
->badge(),
Tables\Columns\IconColumn::make('is_published')
->boolean(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable(),
])
->filters([
Tables\Filters\SelectFilter::make('category')
->relationship('category', 'name'),
Tables\Filters\TernaryFilter::make('is_published'),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\DeleteBulkAction::make(),
]);
}
Relations
// PostResource.php
public static function getRelations(): array
{
return [
RelationManagers\CommentsRelationManager::class,
];
}
// CommentsRelationManager
php artisan make:filament-relation-manager PostResource comments title
Widgets
php artisan make:filament-widget StatsOverview
class StatsOverview extends BaseWidget
{
protected function getStats(): array
{
return [
Stat::make('Total Posts', Post::count()),
Stat::make('Published', Post::published()->count()),
Stat::make('Views', Post::sum('views'))
->description('Total views')
->chart([7, 3, 4, 5, 6, 3, 5]),
];
}
}
Custom Pages
php artisan make:filament-page Settings
class Settings extends Page
{
protected static ?string $navigationIcon = 'heroicon-o-cog';
protected static string $view = 'filament.pages.settings';
}
Authorization
// Resource policy
public static function canViewAny(): bool
{
return auth()->user()->hasRole('admin');
}
public static function canCreate(): bool
{
return auth()->user()->can('create posts');
}
Sonuç
Filament, Laravel admin panelleri için en hızlı çözümdür. Nova'ya ücretsiz alternatif olarak öne çıkıyor.