Laravel’de İlişkiler: Blog Uygulaması Örneği

laravel'de ilişkiler

Önceki yazılarda, Laravel’i kurma, CRUD işlemleri ve temel rotalar gibi temel kavramları inceledik. Bu yazıda ise Laravel’de ilişkileri nasıl kullanacağımıza bakacağız. Laravel’de ilişkiler başlıklı yazımıza hoş geldiniz !

İlişkiler Nedir?

İlişkiler, bir model ile diğer modeller arasındaki bağlantıları temsil eder. Veritabanındaki tablolar arasındaki ilişkileri Laravel modellerinde de tanımlayarak daha karmaşık ve organize uygulamalar geliştirmek mümkündür. Bu yazıda da Laravel’de ilişkiler basit bir şekilde anlatılacak ve başlangıç aşamasında olanlar için yol gösterecek.

Blog Uygulaması Örneği:

Blog uygulamamızda Post ve User modelleri arasında ilişki kuracağız. Bir post, bir kullanıcıya ait olacak ve bir kullanıcı birden fazla post oluşturabilecek.

1. İlişki Tanımlama:

Post.php:

PHP


public function user()

{

return $this->belongsTo(User::class);

}

User.php:

PHP


public function posts()

{

return $this->hasMany(Post::class);

}

2. Veritabanı Yapısı:

Bu modeller, veritabanında aşağıdaki gibi bir tablo yapısı oluşturacaktır:

posts:
  id
  title
  content
  user_id

users:
  id
  name
  email
  password

3. Kullanım Örnekleri:

  • Bir post’un yazarını bulmak için:

PHP


$post->user->name;
  • Bir kullanıcının tüm postlarını listelemek için:

PHP


foreach ($user->posts as $post) {

// ...

}

4. Rota Tanımlama:

routes/web.php dosyasında ilişki ile ilgili rotaları tanımlayabilirsiniz:

PHP


Route::get('/users/{user}/posts', 'UserController@posts');

5. Görünümler:

resources/views klasöründe ilişki ile ilgili görünümleri oluşturabilirsiniz:

HTML


@foreach ($user->posts as $post)

<li>{{ $post->title }}</li>

@endforeach

Sonuç:

Bu yazıda, Laravel’de ilişkileri nasıl kullanacağımıza dair temel bilgileri inceledik. Blog uygulaması örneği üzerinden ilişki kurma ve kullanma işlemlerini adım adım ele alarak, Laravel’in sunduğu ilişkisel veri modelleme avantajlarını deneyimledik.

Ek Kaynaklar:

Bu blog yazı serisinde, Laravel’in temel özelliklerini ve kullanımını detaylı bir şekilde inceleyeceğiz. Takipte kalın!

Bir yanıt yazın