iToverDose/Yazılım· 4 MAYIS 2026 · 05:39

Çok Kiracılı Filament Uygulamaları: Tam Bir Uygulama Kılavuzu

Filament ile çok kiracılı uygulamalar oluşturmak için gereken adımları öğrenin. Tenant modeli, kullanıcı ilişkileri, panel yapılandırması ve daha fazlası

DEV Community1 dk okuma0 Yorumlar

Filament, çok kiracılı uygulamalar oluşturmak isteyen geliştiriciler için güçlü bir araçtır. Ancak, belgeler tam bir uygulama kılavuzu sunmaz. Bu makale, Filament ile çok kiracılı uygulamalar oluşturmak için gereken adımları adım adım açıklar.

Filament'in Çok Kiracılılık Nasıl Çalışır

Filament, çok kiracılılık için paylaşımlı bir veritabanı kullanır. Bir kullanıcı birçok takıma ait olabilir ve her kaynak (projeler, faturalar, biletler vb.) bir takıma ait olur. Kullanıcı, giriş yaptığında bir takımı seçer ve Filament otomatik olarak tüm kaynakları bu takıma göre sınırlar.

Adım 1: Tenant Modelini Oluşturun

Tenant modelini oluşturmak için php artisan make:model Team -m komutunu çalıştırın. Ardından, Team migration dosyasını düzenleyin:

Schema::create('teams', function (Blueprint $table) {
    $table->id();
    $table->string('name');
    $table->string('slug')->unique();
    $table->timestamps();
});

Adım 2: İlişkileri Ayarlayın

Team modeli, users ilişkisine ve HasName arayüzüne ihtiyaç duyar. User modeli, HasTenants arayüzüne ihtiyaç duyar.

namespace AppModels;
use FilamentModelsContractsHasName;
use IlluminateDatabaseEloquentModel;
use IlluminateDatabaseEloquentRelationsBelongsToMany;

class Team extends Model implements HasName {
    protected $fillable = ['name', 'slug'];
    public function users(): BelongsToMany {
        return $this->belongsToMany(User::class)->withPivot('role')->withTimestamps();
    }
    public function getFilamentName(): string {
        return $this->name;
    }
}

Adım 3: Paneli Yapılandırın

Panel sağlayıcısını (app/Providers/Filament/AdminPanelProvider.php) açın ve tenant yapılandırmasını ekleyin:

use AppModelsTeam;
use AppFilamentPagesTenancyRegisterTeam;
use AppFilamentPagesTenancyEditTeamProfile;

public function panel(Panel $panel): Panel {
    return $panel
        ->default()
        ->id('admin')
        ->path('admin')
        ->login()
        ->registration()
        ->tenant(Team::class, slugAttribute: 'slug')
        ->tenantRegistration(RegisterTeam::class)
        ->tenantProfile(EditTeamProfile::class);
}

Gelecekteki makalelerde, Filament ile çok kiracılı uygulamalar oluşturmak için daha advanced konuları ele alacağız.

Yapay zeka özeti

Filament ile çok kiracılı uygulamalar oluşturmak için gereken adımları öğrenin. Tenant modeli, kullanıcı ilişkileri, panel yapılandırması ve daha fazlası

Yorumlar

00
YORUM BIRAK
ID #0BQP1V

0 / 1200 KARAKTER

İnsan doğrulaması

3 + 7 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.