Sarıkaya Dev Logo

Laravel’de Eloquent ORM: Veritabanı İşlemlerini Kolaylaştırın

Mahmut Sarıkaya 3 min read 621 Views 0
Laravel’de Eloquent ORM: Veritabanı İşlemlerini Kolaylaştırın

Merhaba arkadaşlar, bugün sizlere Laravel’de Eloquent ORM hakkında detaylı bir rehber sunacağım. Eloquent, Laravel’in güçlü ve esnek bir ORM (Object-Relational Mapping) sistemidir. Veritabanı işlemlerini kolaylaştıran ve geliştiricilere zaman kazandıran bu yapı, Laravel’in en sevilen özelliklerinden biridir. Gelin, Eloquent’in sunduğu özelliklere ve nasıl kullanabileceğinize birlikte göz atalım.

Eloquent ORM Nedir?

Eloquent, veritabanı tablolarını PHP sınıfları gibi yönetmenizi sağlayan bir ORM sistemidir. Bu sayede, karmaşık SQL sorguları yazmaktan kurtulur ve veritabanı işlemlerini daha okunabilir ve sürdürülebilir bir şekilde gerçekleştirebilirsiniz.

Eloquent ORM Kullanımı

Model Oluşturma

Eloquent’i kullanmak için önce bir model oluşturmanız gerekiyor. Yeni bir model oluşturmak için aşağıdaki komutu kullanabilirsiniz:


php artisan make:model Product


Bu komut, app/Models/Product.php dosyasını oluşturacaktır. Eğer modelle birlikte migration da oluşturmak istiyorsanız, -m parametresini ekleyin:


php artisan make:model Product -m


Veritabanı Tablosu ile Modeli İlişkilendirme

Eloquent, varsayılan olarak model adının çoğul halini veritabanı tablosu olarak kabul eder. Örneğin, Product modeli products tablosu ile ilişkilendirilir. Eğer farklı bir tablo adı kullanmak istiyorsanız, modelde $table özelliğini tanımlayabilirsiniz:


protected $table = 'my_products';


Veri Ekleme

Eloquent ile veri eklemek oldukça kolaydır. Örneğin, yeni bir ürün eklemek için:


$product = new Product;
$product->name = 'Laptop';
$product->price = 999.99;
$product->save();


Veya daha kısa bir şekilde:


Product::create([
    'name' => 'Laptop',
    'price' => 999.99,
]);


Veri Okuma

Eloquent ile veri okumak da oldukça kolaydır. Örneğin, tüm ürünleri listelemek için:


$products = Product::all();


Belirli bir ürünü bulmak için:


$product = Product::find(1);


Koşullara göre veri çekmek için:


$products = Product::where('price', '>', 500)->get();


Veri Güncelleme

Eloquent ile veri güncellemek için:


$product = Product::find(1);
$product->price = 899.99;
$product->save();


Veya daha kısa bir şekilde:


Product::where('id', 1)->update(['price' => 899.99]);


Veri Silme

Eloquent ile veri silmek için:


$product = Product::find(1);
$product->delete();


Veya daha kısa bir şekilde:

Product::destroy(1);

Eloquent ORM’in Avantajları

  • Okunabilirlik: Eloquent, veritabanı işlemlerini daha okunabilir ve anlaşılır hale getirir.
  • Esneklik: Eloquent, karmaşık sorguları kolayca yazmanızı sağlar.
  • Zaman Tasarrufu: Eloquent, geliştirme sürecini hızlandırır ve zaman kazandırır.

Eloquent ORM ile İlişkiler

Eloquent, veritabanı tabloları arasındaki ilişkileri kolayca yönetmenizi sağlar. İşte bazı ilişki türleri:

  1. One-to-One (Bire Bir)
  2. Örneğin, bir kullanıcının bir profili olabilir:


class User extends Model
{
    public function profile()
    {
        return $this->hasOne(Profile::class);
    }
}
  1. One-to-Many (Bire Çok)
  2. Örneğin, bir kullanıcının birden fazla gönderisi olabilir:


class User extends Model
{
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}
  1. Many-to-Many (Çoktan Çoğa)
  2. Örneğin, bir kullanıcının birden fazla rolü olabilir:


class User extends Model
{
    public function roles()
    {
        return $this->belongsToMany(Role::class);
    }
}


Eloquent ORM ile Query Builder

Eloquent, Query Builder ile birlikte çalışarak daha karmaşık sorgular yazmanızı sağlar. Örneğin:


$users = DB::table('users')
            ->join('contacts', 'users.id', '=', 'contacts.user_id')
            ->select('users.*', 'contacts.phone')
            ->get();
Laravel’de Eloquent ORM, veritabanı işlemlerini kolaylaştıran ve geliştiricilere zaman kazandıran güçlü bir araçtır. Eğer veritabanı işlemlerinizi daha okunabilir ve sürdürülebilir hale getirmek istiyorsanız, Eloquent’i mutlaka kullanmalısınız. Bir sonraki yazımda, Laravel’de Form ve Validation İşlemleri konusuna değineceğim. Görüşmek üzere!
Tags: #Laravel #Eloquent ORM #Laravel Eloquent #Veritabanı İşlemleri #Laravel Model #Laravel Migration #Laravel Seeder #Laravel Factory #Laravel Query Builder #Eloquent Relationships #Eloquent One to One #Eloquent One to Many #Eloquent Many to Many #Eloquent Polymorphic Relationships #Eloquent HasManyThrough #Eloquent Accessors #Eloquent Mutators #Eloquent Scopes #Eloquent Query Optimization #Laravel Tinker #Eloquent Casting #Eloquent Serialization #Eloquent Soft Deletes #Eloquent Timestamps #Eloquent Pagination #Eloquent Raw Queries #Eloquent Performance #Laravel Repository Pattern #Laravel Active Record #Laravel 12x
Share:
M

Written by

Mahmut Sarıkaya

Software Developer

Comments

No comments yet. Be the first to share your thoughts!

Leave a Comment

3 + 5 =