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, 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.
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, veritabanı tabloları arasındaki ilişkileri kolayca yönetmenizi sağlar. İşte bazı ilişki türleri:
class User extends Model { public function profile() { return $this->hasOne(Profile::class); } }
class User extends Model { public function posts() { return $this->hasMany(Post::class); } }
class User extends Model { public function roles() { return $this->belongsToMany(Role::class); } }
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!