fikretyn
Üye
Eloquent ORM, Laravel frameworkü ile birlikte gelen güçlü ve popüler bir nesne-ilişkisel haritalama (Object-Relational Mapping - ORM) kütüphanesidir. Eloquent, veritabanı tabloları ile PHP sınıfları arasında kolayca etkileşim kurulmasını sağlar ve veritabanı işlemlerini daha basit, okunabilir ve yönetilebilir hale getirir.
2 - Temel CRUD İşlemleri:Eloquent, veritabanı işlemlerini basit CRUD (Create, Read, Update, Delete) işlemleri ile gerçekleştirir.
Oluşturma (Create):
Okuma (Read):
Güncelleme (Update):
Silme (Delete):
3 - Query Builder ile Çalışma:Eloquent, gelişmiş sorgular oluşturmak için Query Builder'ı kullanmanıza olanak tanır.
İlişkiler (Relationships):Eloquent, veritabanı tabloları arasındaki ilişkileri tanımlamayı ve kullanmayı kolaylaştırır.
Bir-e-Çok (One-to-Many):
Çok-e-Çok (Many-to-Many):
5 - Eager Loading:
Eloquent, ilişkili verilerin verimli bir şekilde yüklenmesi için eager loading sağlar.
6 - Mutators ve Accessors:Eloquent, model özelliklerinin alınmasını veya ayarlanmasını özelleştirmek için mutators ve accessors sağlar.
Eloquent ORM'nin Temel Özellikleri
1 - Model Tanımlama:Eloquent, veritabanı tablolarını temsil eden modellerle çalışır. Her model bir tabloya karşılık gelir. Örneğin, User modeli users tablosuna karşılık gelir.
PHP:
class User extends Model
{
// Model özellikleri burada tanımlanır
}
2 - Temel CRUD İşlemleri:Eloquent, veritabanı işlemlerini basit CRUD (Create, Read, Update, Delete) işlemleri ile gerçekleştirir.
Oluşturma (Create):
PHP:
$user = new User;
$user->name = 'John Doe';
$user->email = '[email protected]';
$user->save();
Okuma (Read):
PHP:
$user = User::find(1);
$users = User::all();
Güncelleme (Update):
PHP:
$user = User::find(1);
$user->name = 'Jane Doe';
$user->save();
Silme (Delete):
PHP:
$user = User::find(1);
$user->delete();
3 - Query Builder ile Çalışma:Eloquent, gelişmiş sorgular oluşturmak için Query Builder'ı kullanmanıza olanak tanır.
PHP:
$users = User::where('status', 'active')
->orderBy('name', 'desc')
->take(10)
->get();
İlişkiler (Relationships):Eloquent, veritabanı tabloları arasındaki ilişkileri tanımlamayı ve kullanmayı kolaylaştırır.
- Bir-e-Bir (One-to-One):
PHP:
class User extends Model
{
public function phone()
{
return $this->hasOne(Phone::class);
}
}
Bir-e-Çok (One-to-Many):
PHP:
class Post extends Model
{
public function comments()
{
return $this->hasMany(Comment::class);
}
}
Çok-e-Çok (Many-to-Many):
PHP:
class User extends Model
{
public function roles()
{
return $this->belongsToMany(Role::class);
}
}
5 - Eager Loading:
Eloquent, ilişkili verilerin verimli bir şekilde yüklenmesi için eager loading sağlar.
PHP:
$users = User::with('posts')->get();
6 - Mutators ve Accessors:Eloquent, model özelliklerinin alınmasını veya ayarlanmasını özelleştirmek için mutators ve accessors sağlar.
- Accessor:
PHP:
[/LIST] ]public function getFullNameAttribute() { return "{$this->first_name} {$this->last_name}"; [LIST] [*][B]Mutator[/B]: [/LIST] public function setPasswordAttribute($value) { $this->attributes['password'] = bcrypt($value); }
Neden Eloquent Kullanmalısınız?
- Kolay Kullanım: Eloquent, yazımı basit ve anlaşılırdır, bu da geliştiricilerin hızlı bir şekilde veritabanı işlemlerini gerçekleştirmesine olanak tanır.
- MVC Yapısına Uyum: Eloquent, Laravel'in MVC (Model-View-Controller) yapısına tam uyum sağlar.
- İlişkiler ve Bağlantılar: Veritabanı tabloları arasındaki ilişkileri tanımlamak ve yönetmek oldukça kolaydır.
- Güçlü ve Esnek: Query Builder ve ORM yetenekleri sayesinde karmaşık sorgular ve işlemler kolayca gerçekleştirilebilir.