ݺߣ

ݺߣShare a Scribd company logo
Eloquent ORM 
Arda Kılıçdağı 
! 
ardakilicdagi@gmail.com 
Twitter: @ardadev 
linkedin.com/in/ardakilicdagi
ORM Nedir? 
! 
Object-relational mapping 
! 
Nesne-İlişkisel Eşleme
Eloquent ORM
Temel Model 
Propertyleri
Temel CRUD İşlemleri 
Create 
Read 
Update 
Delete
Soft Deletes 
(Belirsiz Silme)
Query Scopes 
(Sorgu ı)
Relationships 
İlişkiler: 
! 
• One-to-One 
• One-to-Many 
• Many-to-Many 
• Has-Many-Through 
• Polymorphic 
• Many-to-Many Polymorphic
Relationships 
//Temel bir ilişki yapısı hazırlama 
public function iliskiAdi(){ 
return $this->iliskiSekli( 
'ModelAdı', 
'foreignVeyaLokalkey1', 
'foreignVeyaLokalKey2') 
->isteniyorsaWhereGibiFiltrelemeler() 
->hattaOrderByGibiSıralama(); 
}
One to One 
Relationships
One-to-one Relationship 
public function relationAdi(){ 
return $this->hasOne( 
'ModelAdı', //Hangi modelle ilişki? 
'foreignKey', //ModelAdı'ndaki 
relation sütunu 
'lokalRelationKey' //ya id değilse? 
); 
}
One-to-many Relationship
One-to-many Relationship 
public function relationAdi(){ 
return $this->hasMany( 
'ModelAdı', //Hangi modelle ilişki? 
'foreignKey', //ModelAdı'ndaki 
relation sütunu 
'lokalRelationKey' //ya id değilse? 
); 
}
Many-to-Many 
Relationships 
blog_id
Many-to-Many Relationship 
public function relationAdi(){ 
return $this->belongsToMany( 
'ModelAdı', //Hangi modelle ilişki? 
'tabloadi', //Pivot tablo adı 
'localKey', //Pivot tabloda kendi id'sini tutan sütun 
'foreignKey', //Pivot tablodaki bağlanacağı modelin 
id'sin tutacak sütun 
) 
(opsiyonel)->withPivot('pivotTablosundaki 
EkstraSutun'); //Eğer pivot tablosunda çekilmesi gereken 
ekstra sütun(lar) varsa 
(opsiyonel)->withTimestamps(); //eğer pivot tabloda 
timestampler varsa 
}
Has-Many-Through 
Relationships
Has-Many-Through 
Relationships
Polymorphic Relations 
Çokbiçimli ş쾱
Polymorphic Relations
Polymorphic Relations
Relation Sorgulama 
! 
has() 
whereHas() 
orWhereHas()
N+1 Sorgu Sorunsalı 
! 
-Relationship'ler çok fazla loop olduğunda veri kaynağını yormaz mı? 
-Bu sorgularda performansı nasıl artırabiliriz?
Eager Loading
ձşü!
http://bit.ly/ 
laravel-kitabi 
Sorular? 
http://bit.ly/laravel-design- 
patterns 
http://bit.ly/ 
raspberry-pi-kitabi

More Related Content

Eloquent ORM