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: Eloquent’ta İlişkileri Anlamak (Laravel Başlangıç Kılavuzu)
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 » Eloquent’ta İlişkileri Anlamak (Laravel Başlangıç Kılavuzu)

Yazılım

Eloquent’ta İlişkileri Anlamak (Laravel Başlangıç Kılavuzu)

teknomers
Son güncelleme: 22 Mayıs 2026 13:35
teknomers
Paylaş
Paylaş

Laravel’deki ilişkiler, en önemli kavramlardan biridir.

Eloquent İlişkilerini doğru bir şekilde anladığınızda, gerçek dünya uygulamaları oluşturmaya başlamanız çok daha kolay, düzenli ve ölçeklenebilir hale gelir.

Hemen hemen her uygulama, bağlantılı verilere bağımlıdır.

Örneğin:

  • Bir kullanıcı gönderi oluşturur
  • Bir gönderinin yorumları vardır
  • Bir sipariş bir müşteriye aittir
  • Öğrenciler derslere kaydolur

Karmaşık SQL joinlerini manuel olarak yazmak yerine, Laravel Eloquent ORM üzerinde şık ilişki yöntemleri sunar.

Bu makalede, başlangıç seviyesine uygun örneklerle Laravel’deki en önemli ilişkileri anlayacağız.


Eloquent İlişkileri, modellerin birbirleriyle iletişim kurmasını sağlar.

İlişkileri, veri tabanı tabloları arasındaki bağlantılar olarak düşünün.

Laravel, ilişkilendirilmiş verileri kolayca içe aktarmanızı sağlayan yöntemler sunar.

Örnek:

$user->posts

Manuel olarak SQL joinleri yazmak yerine, Laravel bağlantıyı otomatik olarak sizin için halleder.


Bir One to One ilişkisi şunu ifade eder:

Bir kayıt tam olarak bir başka kayıtla bağlantılıdır.


Örnek

Bir kullanıcının bir profili vardır.


Tablolar

users
profiles


User Model

public function profile()
{
    return $this->hasOne(Profile::class);
}


Profile Model

public function user()
{
    return $this->belongsTo(User::class);
}


Kullanım

$user = User::find(1);

$user->profile;


Gerçek Dünya Kullanım Durumları

  • Kullanıcı profil bilgileri
  • Çalışan detayları
  • Hesap ayarları

Bu, en yaygın kullanılan ilişkidir.

Bu demektir ki:

Bir kayıt birden fazla ilgili kayıtla bağlantılı olabilir.


Örnek

Bir kullanıcı birçok gönderi oluşturabilir.


User Model

public function posts()
{
    return $this->hasMany(Post::class);
}


Post Model

public function user()
{
    return $this->belongsTo(User::class);
}


Kullanım

$user->posts;


Gerçek Dünya Örnekleri

  • Kullanıcı → Gönderiler
  • Kategori → Ürünler
  • Gönderi → Yorumlar
  • Müşteri → Siparişler

belongsTo(), temelde hasMany() veya hasOne()‘nun tersidir.

Laravel’e şöyle der:

Bu model başka bir modele aittir.


Örnek

Bir gönderi bir kullanıcıya aittir.


Post Model

public function user()
{
    return $this->belongsTo(User::class);
}


Kullanım

$post->user;

Laravel, tablo içinde:

user_id

adı altında otomatik olarak arama yapar.


Bu ilişki, her iki modelin de birbirleriyle birden fazla bağlantıya sahip olabileceği durumlarda kullanılır.


Örnek

  • Bir öğrenci birçok derse katılabilir
  • Bir ders birçok öğrenciyi içerebilir


Student Model

public function courses()
{
    return $this->belongsToMany(Course::class);
}


Course Model

public function students()
{
    return $this->belongsToMany(Student::class);
}

Many to Many ilişkileri, bir pivot tablosu gerektirir.

Örnek:

course_student

Bu tablonun içinde saklanır:

student_id
course_id

$student->courses;

veya

$course->students;


Gerçek Dünya Örnekleri

  • Roller ↔ Kullanıcılar
  • Ürünler ↔ Etiketler
  • Öğrenciler ↔ Dersler
  • Filmler ↔ Aktörler

Bu ilişki, başka bir model aracılığıyla verilere erişim sağlar.


Örnek

Bir Ülkenin, Kullanıcılar aracılığıyla birçok Gönderisi vardır.


Yapı

Country → Users → Posts

Manuel olarak tabloları birleştirmek yerine, Laravel bunu otomatik olarak yönetir.


Örnek

public function posts()
{
    return $this->hasManyThrough(
        Post::class,
        User::class
    );
}


Kullanışlı Olur

  • Şirket → Çalışanlar → Görevler
  • Okul → Öğrenciler → Sonuçlar
  • Ülke → Kullanıcılar → Gönderiler

Bu ilişki, biraz daha ileri düzeydir ama çok güçlüdür.


Laravel ilişkileri, yabancı anahtarlar üzerine yoğun bir şekilde inşa edilmiştir.

Örnek:

users table → id
posts table → user_id

Laravel, otomatik olarak adlandırma kurallarını varsayılan olarak alır:

model_name_id

Bu nedenle, Laravel kurallarına uymak, zaman kazandırır.


İlişkilerle ilgili en önemli kavramlardan biri Eager Loading’dir.


N+1 Sorgu Problemi

Şunu hayal edin:

$posts = Post::all();

foreach ($posts as $post) {
    echo $post->user->name;
}

Laravel şu sorguları çalıştırır:

  • Posts için 1 sorgu
  • Kullanıcılar için birden fazla sorgu

Bu, performans sorunları yaratır.


$posts = Post::with('user')->get();

Şimdi Laravel, her şeyi daha az sorguyla verimli bir şekilde yükler.


Faydalar

  • Daha iyi performans
  • Daha hızlı uygulamalar
  • Azaltılmış veritabanı yükü

Ölçeklenebilir uygulamalar geliştiriyorsanız, eager loading şarttır.


Yeni başlayanların yaptığı bazı hatalar şunlardır:


1. Yanlış Yabancı Anahtar İsimleri

Laravel şunları bekler:

user_id

Farklı isimler kullanıyorsanız, bunları manuel olarak tanımlamanız gerekir.



2. İlişki Yöntemlerini Unutmak

Bu yanlış:

$user->posts()

Genellikle istediğiniz budur:

$user->posts

İlki ilişki sorgu oluşturucuyu döndürür.
İkincisi ise gerçek verileri döndürür.



3. Eager Loading Kullanmamak

Yeni başlayanlar sık sık unutuyor:

with()

Bu, uygulamaları kötü bir şekilde yavaşlatabilir.



4. Pivot Tabloların Eksik Olması

Many to Many ilişkileri, pivot tablosu olmadan düzgün çalışmaz.


Eloquent İlişkileri, Laravel’in en güçlü özelliklerinden biridir.

Bir kez ustalaştığınızda:

  • Kodunuz daha temiz hale gelir
  • Veritabanı sorguları daha kolay hale gelir
  • Uygulamalar daha ölçeklenebilir hale gelir
  • Geliştirme süreci daha hızlı olur

Laravel öğreniyorsanız, küçük projelerle ilişkileri pratiğe geçirip zaman harcayın.

İşte burada her şey bağlantı kurmaya başlıyor.


Şunları denemek için yapmak:

  • Blog sistemi
  • Görev yöneticisi
  • Öğrenci kurs portalı
  • E-ticaret mini projesi

Ve uygulamak:

  • One to One
  • One to Many
  • Many to Many

Pratik, ilişkileri derinlemesine anlamanın en hızlı yoludur.


Laravel ilişkileri, tekrar eden SQL sorgularını manuel olarak yazmanın acısını ortadan kaldırır.

Geliştiricilere daha fazla uygulama mantığına odaklanma ve veritabanı karmaşasından daha az etkilenme fırsatı sunar.

Basit başlayın.
Tutarlı bir şekilde pratik yapın.
Ve ilişkiler sonunda doğal hale gelecektir.

İyi kodlamalar!

Kaynak: Orijinal Makale

Contents
  • Örnek
    • Tablolar
    • User Model
    • Profile Model
    • Kullanım
  • Gerçek Dünya Kullanım Durumları
  • Örnek
    • User Model
    • Post Model
    • Kullanım
  • Gerçek Dünya Örnekleri
  • Örnek
    • Post Model
    • Kullanım
  • Örnek
    • Student Model
    • Course Model
  • Gerçek Dünya Örnekleri
  • Örnek
    • Yapı
    • Örnek
  • Kullanışlı Olur
  • N+1 Sorgu Problemi
  • Faydalar
  • 1. Yanlış Yabancı Anahtar İsimleri
  • 2. İlişki Yöntemlerini Unutmak
  • 3. Eager Loading Kullanmamak
  • 4. Pivot Tabloların Eksik Olması
Laravel’de İzin Tabanlı Bir MCP Sunucusu Oluşturma (Arka Kapı Açmadan)
Laravel, Twilio ve OpenAI Kullanarak WhatsApp AI Asistanı Geliştirin
2026’da Bağımsız Geliştiriciler İçin ShipFast, Larafast ve SaaSykit: Hangi SaaS Temeli Değerli?
Meetsy’yi Nasıl Geliştirdim – Laravel 11 ile Tam Özellikli Bir Özel Mesajlaşma Uygulaması
3 Saniyelik Tuzağı: HTML’den Laravel Blade’e Dönüşümlerin Neden Bu Kadar Yavaş Yükleniyor
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Lenovo’nun Anma Günü indiriminde RTX gücünü uygun fiyata kap!
Sonraki Makale Microsoft’un Tüketici Pazarlama Departmanı Yılı Doldurmadan Ayrılıyor

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Anthropic Yeni Modellerine Erişimi Durdururken Hindistan’ın AI Geleceği Tartışılıyor
Genel
Meta’nın Beijing’e tepki olarak 2 milyar dolarlık anlaşmayı geri çektiği iddia edildi
Yapay Zeka
Mumbai’de Web Geliştirme Hizmetleri: HTML, CSS, PHP, Laravel, React ve Next.js
Yazılım
SteelSeries’ten Beklenen Eğlenceli South Park Oyun Aksesuarı
Oyun
Amazon güvenlik araştırması Beyaz Saray’ın Anthropic Fable yasağına neden oldu
Liste
Eski çalışan, eski işvereni hedef alan siber saldırılarla hapse girdi!
Siber Güvenlik
//

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?