eloquent orm

Post on 26-Jun-2015

563 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides of my presentation "Eloquent ORM" for PHPKonf, which occurred in Istanbul Sehir University in

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