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:
- One-to-One (Bire Bir)
- Örneğin, bir kullanıcının bir profili olabilir:
class User extends Model
{
public function profile()
{
return $this->hasOne(Profile::class);
}
}
- One-to-Many (Bire Çok)
- Örneğin, bir kullanıcının birden fazla gönderisi olabilir:
class User extends Model
{
public function posts()
{
return $this->hasMany(Post::class);
}
}
- Many-to-Many (Çoktan Çoğa)
- Ö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!
+(15).png&w=320&q=50)


