eloquent orm
Post on 26-Jun-2015
563 Views
Preview:
DESCRIPTION
TRANSCRIPT
Eloquent ORMArda 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 İşlemleriCreate Read
Update Delete
Soft Deletes(Belirsiz Silme)
Query Scopes(Sorgu Kapsamları)
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 Relationshippublic 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 Relationshippublic 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 ilişkiler
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
Teşekkürler!
http://bit.ly/laravel-kitabi
http://bit.ly/laravel-design-patterns
http://bit.ly/raspberry-pi-kitabi
Sorular?
top related