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ı