PHP 8 Php 8 Laravel 2026 Güncel

Php 8 Models

5 dk okuma süresi 484 görüntülenme 2024-09-29 4.9 (14 değerlendirme)

PHP 8 ile Laravel kullanırken Models (modeller), veritabanı tablolarını temsil eden ve bu tablolara erişimi yönetmek için kullanılan sınıflardır. Modeller, veritabanındaki verileri nesne yönelimli bir şekilde yönetmeye olanak tanır ve genellikle uygulamanızın iş mantığıyla veritabanı etkileşimini soyutlar.

1. Model Nedir?

Model, veritabanındaki bir tabloya karşılık gelen bir sınıftır. Her model, genellikle bir tablo ile ilişkilidir ve bu tabloya ait verileri almak, güncellemek, silmek veya oluşturmak için yöntemler sağlar. Laravel, Eloquent ORM (Object-Relational Mapping) kullanarak modeller ile veritabanı arasındaki etkileşimi kolaylaştırır.

2. Model Oluşturma

Yeni bir model oluşturmak için terminalde aşağıdaki komutu kullanabilirsiniz:

php artisan make:model Post

Bu komut, app/Models dizininde Post.php adında bir model dosyası oluşturur.

3. Model Yapısı

Oluşturulan model dosyası genellikle şu şekilde görünür:

<?php namespace AppModels; use IlluminateDatabaseEloquentFactoriesHasFactory; use IlluminateDatabaseEloquentModel; class Post extends Model { use HasFactory; // Fabrika kullanımını etkinleştirir protected $fillable = ['title', 'content']; // Kütüphane ile doldurulabilecek alanlar }

4. Model Özellikleri

  • $fillable: Bu dizi, toplu atama (mass assignment) için hangi alanların kullanılabileceğini belirtir. Örneğin, bir formdan alınan verilerin hangi alanlara doldurulabileceğini kontrol edebilirsiniz.

  • ** g u a r d e d : B u d i z i , h a n g i a l a n l a r ı n t o p l u a t a m a y a k a p a t ı l a c a g ˘ ı n ı b e l i r t i r . guarded**: Bu dizi, hangi alanların toplu atamaya kapatılacağını belirtir. ` fillable` ile birlikte kullanılır, ancak yalnızca birini kullanmak genellikle yeterlidir.

  • ** t a b l e : E g ˘ e r m o d e l i n i z i n t a b l o s u v a r s a y ı l a n a d l a n d ı r m a k u r a l ı n a u y m u y o r s a , table**: Eğer modelinizin tablosu varsayılan adlandırma kuralına uymuyorsa, ` table` özelliği ile tablo adını belirtebilirsiniz.

protected $table = 'my_custom_table_name';
  • $primaryKey: Varsayılan olarak id olan birincil anahtarınız farklı bir ad ise, bunu belirtmek için bu özelliği kullanabilirsiniz.
protected $primaryKey = 'post_id';

5. Temel Eloquent İşlemleri

Eloquent, modeller aracılığıyla veritabanı ile etkileşimi kolaylaştırır. Aşağıda bazı temel Eloquent işlemleri bulunmaktadır:

5.1. Veri Alma

$posts = Post::all(); // Tüm kayıtları al $post = Post::find(1); // ID'si 1 olan kaydı al

5.2. Yeni Kayıt Oluşturma

$post = new Post(); $post->title = 'Yeni Başlık'; $post->content = 'Yeni içerik'; $post->save(); // Kaydı veritabanına kaydet

Ya da toplu atama ile:

Post::create([ 'title' => 'Yeni Başlık', 'content' => 'Yeni içerik' ]);

5.3. Kayıt Güncelleme

$post = Post::find(1); $post->title = 'Güncellenmiş Başlık'; $post->save(); // Kaydı güncelle

5.4. Kayıt Silme

$post = Post::find(1); $post->delete(); // Kaydı sil

6. İlişkiler

Laravel, modeller arasında ilişkileri tanımlamanıza olanak tanır. Örneğin, bir User modelinin birçok Post modeline sahip olduğunu düşünelim:

class User extends Model { public function posts( ) { return $this->hasMany(Post::class); } } class Post extends Model { public function user( ) { return $this->belongsTo(User::class); } }

Bu ilişkileri kullanarak ilgili verileri alabilirsiniz:

$user = User::find(1); $posts = $user->posts; // Kullanıcının tüm gönderilerini al $post = Post::find(1); $user = $post->user; // Gönderinin yazarını al

7. Scope'lar

Eloquent'ta query scope'lar, belirli bir sorgu mantığını tekrar kullanmak için tanımlayabileceğiniz özel yöntemlerdir.

class Post extends Model { public function scopePublished( $query ) { return $query->where('published', true); } } // Kullanımı $publishedPosts = Post::published()->get();

8. Eloquent Fabrikaları

Eloquent fabrikaları, test veya geliştirme sırasında model örnekleri oluşturmak için kullanılır. Fabrikalar, belirli bir modelin rasgele verilerle doldurulmuş örneklerini oluşturmanıza olanak tanır.

php artisan make:factory PostFactory --model=Post

Daha sonra database/factories/PostFactory.php dosyasını düzenleyerek modelin nasıl örnekleneceğini tanımlayabilirsiniz.

Sonuç

Modeller, Laravel ile web uygulamaları geliştirirken veritabanı etkileşimini yönetmek için önemli bir bileşendir. Eloquent ORM ile modeller arasında kolay ve anlaşılır bir iletişim kurabilirsiniz. Modellerin sunduğu ilişkiler, sorgu kapsamları ve fabrikalar gibi özellikler, uygulamanızı daha esnek ve modüler hale getirir. Laravel’in güçlü model yapısı sayesinde veritabanı işlemlerinizi daha etkin bir şekilde yönetebilirsiniz.

Bu Dersi Değerlendirin

Bu ders size yardımcı oldu mu? Puan verin!

Geri bildiriminiz içeriğimizi sürekli güncel ve kaliteli tutmamızı sağlar.

4.9 / 5 (Toplam 14 oy kullanıldı)

Sıkça Sorulan Sorular (SSS)

Bu ders ve konuyla ilgili en çok merak edilenler

Php 8 Models dersini öğrenmek için ön koşul var mı?

Bu eğitim temel seviyeden ileri seviyeye adım adım hazırlanmıştır. Kodları kopyalayıp Canlı Editör üzerinde test ederek kolayca pratik yapabilirsiniz.

Örnek kodları kendi projelerimde ücretsiz kullanabilir miyim?

Evet, PHP Hocası üzerindeki tüm kod örnekleri açık kaynak mantığıyla sunulmaktadır. Ticari veya kişisel projelerinizde serbestçe kullanabilirsiniz.

Takıldığım bir yerde nereden soru sorabilirim?

Dersin altındaki topluluk yorumları bölümünden sorunuzu sorabilirsiniz. Eğitmenlerimiz ve topluluk üyelerimiz kısa sürede yanıt verecektir.

Paylaş:
PHP Hocası Akademi

Topluluk Yorumları (0)

Ders Hakkında Yorum Yap veya Soru Sor

Henüz yorum yapılmamış. İlk yorumu siz yazın!