Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Filament v5’te Kaynak Oluşturma | Laravel Kişisel Finans Panosu
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Filament v5’te Kaynak Oluşturma | Laravel Kişisel Finans Panosu

Yazılım

Filament v5’te Kaynak Oluşturma | Laravel Kişisel Finans Panosu

teknomers
Son güncelleme: 10 Şubat 2026 15:30
teknomers
Paylaş
Paylaş

Veritabanı yapımızı oluşturduk. Güçlü, tiplenmiş ve veri bekliyor. Ancak bir arayüz olmadan bir veritabanı, kapıları olmayan bir kütüphane gibidir: güvenli, ama işe yaramaz.

Bugün, o kapıları inşa edeceğiz.

İlk Filament Resources’larımızı oluşturacağız. Filament’te bir “Resource”, yönetim panelinde bir varlığın statik temsilidir. Modelinizin bir tabloda nasıl göründüğünü, bir formda nasıl davrandığını ve uygulamanızın geri kalanı ile nasıl ilişkilendiğini tanımlar.

Temel bir konudan başlıyoruz: Kategoriler.

1. Kategori Kaynağını Oluşturma

Filament, kaynakları oluşturmak için güçlü bir artisan komutu sağlar. Kategorilerimizin kolayca yönetilebilir olmasını istiyoruz; listeyi terk etmeden. Tek bir sayfada, modaller kullanarak Oluşturma, Okuma, Güncelleme ve Silme (CRUD) işlemlerini gerçekleştiren “Basit Bir Kaynak” istiyoruz.

Bu komutu çalıştırın:

php artisan make:filament-resource Category --simple
        

Bu iki önemli dosya oluşturur:

  1. app/Filament/Resources/CategoryResource.php: Tablo ve form tanımı.
  2. app/Filament/Resources/CategoryResource/Pages/ManageCategories.php: Eylemleri yöneten sayfa kontrolcüsü.

Şu an /admin/categories adresine giderseniz, User seçenek kutusuyla bir form görebilirsiniz. Bu teknik olarak doğru, çünkü bir kategori bir kullanıcıya aittir, ancak pratikte yanlıştır. Bir kategori oluşturduğumda, onun bana ait olması gerekir. Kendimi bir listeden seçmemem gerekir.

2. Kapsama ve Bağlam

Çözmemiz gereken iki sorun var:

  1. Görünürlük: Diğer kullanıcılara ait kategorileri görebiliyorum.
  2. Oluşturma: Kullanıcıyı manuel olarak seçmem gerekiyor.

Görünürlüğü Düzeltme

Sadece kendi kayıtlarımı görmemi sağlamak için, kaynak tarafından kullanılan Eloquent sorgusunu kesin bir şekilde sınırlandırıyoruz. getEloquentQuery metodunu CategoryResource.php dosyasında geçersiz kılıyoruz.

public static function getEloquentQuery(): \Illuminate\Database\Eloquent\Builder
{
    return parent::getEloquentQuery()->where('user_id', auth()->id());
}

Artık tablo yalnızca user_id’sinin oturum açmış kullanıcıyla eşleştiği kayıtları yükleyecek.

Oluşturmayı Düzeltme

Sonra formu temizliyoruz. CategoryResource::form() içinde user_id girişini tamamen kaldırıyoruz. Kullanıcının bu konuda endişelenmesini istemiyoruz.

Ancak veritabanı o ID’yi gerek duyar. Bu yüzden onu programlı olarak ekleyeceğiz.

app/Filament/Resources/CategoryResource/Pages/ManageCategories.php dosyasında CreateAction’ı değiştiriyoruz. Form gönderimini engellemek için mutateFormDataUsing kullanıyoruz ve form verileri veritabanına ulaşmadan önce geçerli kullanıcının ID’sini ekleyeceğiz.

protected function getHeaderActions(): array
{
    return [
        CreateAction::make()
            ->mutateDataUsing(function (array $data): array {
                $data['user_id'] = auth()->id(); // 
                return $data;
            }),
    ];
}

Ayrıca tablodan user sütununu kaldırıyoruz, böylece görünüm temiz kalıyor.

Veri kapsamını görmek için bu commite göz atabilirsiniz.

3. Banka Hesapları

Para bir eve ihtiyaç duyar. Aynı mantığı Banka Hesapları için uygularız.

  1. Kaynağı oluşturun: php artisan make:filament-resource BankAccount --simple.
  2. Sorguyu BankAccountResource içinde sınırlandırın.
  3. ManageBankAccounts içinde user_id’i yerleştirin.

Veritabanınızı kontrol ederseniz, MoneyCast’in sessizce çalıştığını görebilirsiniz. Bakiye alanına “1000” yazdığınızda, bu veritabanında 100000 (sente) olarak saklanır, girdiyi belirli bir sayı olarak ele aldığınız varsayılarak.

Bir nokta var. Şu anki formu genel. Daha sonra, kullanıcı “10.00” yazdığında “1000” olarak saklanmasını sağlamak için ondalıklara doğru bir şekilde ihtiyaç duyacağız. Şu anda, ham girdiğe güveniyoruz.

Banka Hesabı kaynağının uygulamasını buradan inceleyebilirsiniz.

4. Bütçeler ve Sunum

Son olarak, Bütçeleri ele alalım. Burada Filament’in UI bileşenleri gerçekten öne çıkıyor.

Kaynağı oluşturun:

php artisan make:filament-resource Budget --simple
        

Bütçelerin bir type’ı vardır (Sıfırlama veya Devretme). Veritabanımızda bu bir Enum dizesidir. Filament’te bunu anında renklerle görselleştirmek istiyoruz.

Badge Sütunu

BudgetResource.php içinde bir TextColumn kullanabiliriz, ancak bunu bir badge olarak formatlayabiliriz.

TextColumn::make('type')
            ->badge()
            ->color(fn (BudgetType $state): string => match ($state) {
                BudgetType::Reset => 'success',
                BudgetType::Rollover => 'warning',
            })
            ->searchable(),
        

Bu basit zincirleme, sıkıcı bir metin dizesini canlı, iletişimci bir UI öğesine dönüştürüyor.

Paranın Biçimlendirilmesi

Ayrıca bütçe tutarını sadece ham bir sayı olarak değil, gerçek bir para birimi olarak göstermek istiyoruz. Filament, bu amaçla özel bir money biçimlendirici sunar.

TextColumn::make('amount')
            ->money('EUR')
            ->sortable(),
        

Bu, hemen düzenli ve profesyonel bir görünüm sağlar.

Sonuç

Artık kişisel finans uygulamamızın üç işlevsel direğine sahibiz:

  1. Kategoriler harcamalarımızı etiketlemek için.
  2. Banka Hesapları zenginliğimizi saklamak için.
  3. Bütçeler tutumlu davranmalarını kontrol etmek için.

Ve önemli olan, bunlar oturum açmış kullanıcıya tamamen özel.

Bir sonraki derste, ilk kaynaklarımızı test edeceğiz. Yapmaya devam edin.

Kaynak: Orijinal Makale

Contents
  • 1. Kategori Kaynağını Oluşturma
  • 2. Kapsama ve Bağlam
    • Görünürlüğü Düzeltme
    • Oluşturmayı Düzeltme
  • 3. Banka Hesapları
  • 4. Bütçeler ve Sunum
    • Badge Sütunu
    • Paranın Biçimlendirilmesi
  • Sonuç
Her gün veritabanımı yapay zeka araçlarına açıklamaktan kurtulmak için bir Laravel paketi geliştirdim.
Laravel SSS (Yeni Başlayanlardan İleri Seviyeye)
Reddedilen Laravel PR’den Laravel Arr Genişletmesine: Arr::after Ekleme
Proje BookMyShow: Gün 7 – DEV Topluluğu
Autokorreksiyonu engelleme: Laravel, Grok ve OpenSpec ile AI ajansları için güvenlik sistemlerinin pratik bir demonstrasyonu
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Markiplier’in Iron Lung Filmi Bütçesinin 11 Katını Kazandı
Sonraki Makale ZAST.AI, Sıfır Yanlış Pozitiflerle Kod Güvenliğine 6M Dolar Yatırım Aldı

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Kritik Acil: Yeni DirtyClone Açığı ile Kullanıcılar Root Erişimi Sağlıyor
Siber Güvenlik
Konsollar En Kötü Zamanında Pahalılaşıyor, GTA Yolda
Liste
Walmart’ta Kaçırılmayacak 23 Fırsat: Şu Anki Diğer İndirimlerden Daha İyi!
Genel
Microsoft, Windows 10 güvenlik güncellemelerini 2027’ye uzattı
Donanım
Laravel 5’ten Bugüne: Framework Bizimle Büyüdü
Yazılım
Favori Silah Türü İçin Beklenen Güncelleme Geldi
Oyun
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?