 (46).png)
"Verileri silmek gerçekten gerekli mi?" Laravel'in Soft Delete özelliğiyle verilerinizi gerçekten silmeden nasıl güvenle yöneteceğinizi öğrenelim!
Soft Delete (Yumuşak Silme), veritabanından tamamen silmek yerine:
deleted_at sütununu doldurur 📅// Normal silme (Hard Delete) $user->delete(); // Veri TAMAMEN silinir // Soft Delete $user->delete(); // Sadece deleted_at dolar
Migration:
Schema::table('users', function (Blueprint $table) {
$table->softDeletes(); // deleted_at sütunu ekler
});
Model:
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model
{
use SoftDeletes;
protected $dates = ['deleted_at'];
}
SenaryoHard DeleteSoft DeleteKullanıcı hesap silme❌ Riskli✅ GüvenliSipariş iptali❌ Veri kaybı✅ İz bırakırİçerik moderasyonu❌ Geri dönüşsüz✅ Geri yükleme
// Aktif kayıtlar (silinmemiş) User::all(); // Sadece silinmişler User::onlyTrashed()->get(); // Tüm kayıtlar (silinenler dahil) User::withTrashed()->get();
$user->restore(); // Tekli User::onlyTrashed()->restore(); // Toplu
$user->forceDelete(); // Veritabanından kalıcı siler
class User extends Model
{
protected static function boot()
{
parent::boot();
static::deleting(function($user) {
$user->posts()->delete(); // İlişkili postları da soft delete
});
static::restoring(function($user) {
$user->posts()->restore(); // Geri getirirken postları da restore
});
}
}
// Silinmemiş postları getir $user->posts()->withoutTrashed()->get(); // Sadece silinmiş postlar $user->posts()->onlyTrashed()->get();
class User extends Model
{
protected static function boot()
{
parent::boot();
static::addGlobalScope('not_deleted', function (Builder $builder) {
$builder->whereNull('deleted_at');
});
}
}
// AdminController
public function index()
{
return User::withTrashed()->get();
}
// TrashController
public function index()
{
return view('users.trash', [
'users' => User::onlyTrashed()->get()
]);
}
public function restore($id)
{
User::onlyTrashed()->findOrFail($id)->restore();
return back();
}
ÖzellikAvantajDezavantajVeri Kurtarma✅ Kolay geri yükleme❌ Daha fazla depolamaVeri Bütünlüğü✅ İlişkiler korunur❌ Karmaşık sorgularPerformans⚠️ Küçük performans etkisi🚀 Hard delete'den yavaş
Soft Delete ile:
Projelerinizde soft delete kullanıyor musunuz? Deneyimlerinizi yorumlarda paylaşın! 💬
Bir sonraki yazımız: 🚀 [Laravel'de API Caching: Hızlı ve Verimli API Tepkileri] - API'nizi turbo hızına çıkarın!
#Laravel #Database #SoftDelete #WebDevelopment #Backend 🚀