Laravel: Eloquent ORM – Başlarken

Giriş

Laravel’e dahil olan Eloquent ORM, veritabanızla çalışmanızı sağlayan kullanışlı ve basit ActiveRecord uygulamasıdır. Her veritabanı tablosuna karşılık gelen “Model”, tabloyla etkileşim için kullanılır. Modeller tablolarınızda veriler için sorgular yapmanızı, yeni kayıtlar gitmenizi sağlar. Başlamadan önce veritabanı bağlantınızı config/database.php dosyasında yapılandırın.

Modelleri Tanımlama

Başlamak için bir Eloquent model oluşturalım. Modeller tipik olarak app klasörü içindedirler, fakat composer.json dosyanızda belirttiğiniz otomatik yüklemelere bağğlı olarak herhangi bir yerde olabilir. Tüm Eloquent modelleri Illuminate\Database\Eloquent\Model sınıfından genişletilir.

Model örneği üretmenin en kolay yolu make:model artisan konutu kullanmaktır.

Model üretildiğinde bir database migration üretmek isterseniz --migration veya -m parametresiyle kullanabilirsiniz.

Eloquent Model Kullanımı

Şimdi, flights veritabanı tablomuzdan veri alıp sağlamak için kullanacağımız Flight model sınıfına bir göz atalım.

Tablo İsimleri

Not olarak Eloquent’e Flight modelimiz için hangi tabloyu kullanacağını belirtmedik. Tablo ismi olarak özellikle belirtilmediyse sınıf isminin “snake case” (bkz. Snake case) ve çoğul hali kullanılır. Bu durumda Eloquent Flights modelinin flights tablosunda kayıtları saklamasıyla ilgli görevlerini üstlenir. Modelinizdeki table özelliğiyle isteğe bağlı tablo ismi belirtebilirsiniz:

Birincil Anahtarlar (Primary Keys)

Eloquent ayrıca her tablonun birincil anahtarının id olarak isimlendirildiğini varsayar. primary özelliği ile bunu değiştrebilirsiniz.

Zamanlar

Varsayılan olarak Eloquent tablonuzda created_at, updated_at kolonlarının olduğunu farzeder. Bu kolonların Eloquent tarafından yönetilmesinizi istemiyosanız modelinizdeki timestamps özeliğini false yapın:

Zaman formatlarını özelleştirmeye ihtiyaç duyarsanız, modelinizdeki $date özelliğini ayarlayın. Bu özellik, zaman özelliklerinin database de nasıl saklanacağını ve array veya JSON şekline dönüştürüldüğünde nasıl olacağını belirler.

Veritabanı Bağlantısı

Varsayılan olacak Eloquent modelleri uygulamanız için yapılandırılmış varsayılan veritabanı bağlantısını kullanacaktır. Eğer farklı bir bağlantı belirtmek isterniz $connection özelliğini kullanın:

Modelleri Çoklu Getirmek

Modelinizi yarattıktan ve veritabanı tablosuyla ilişkilendirdikten sonra veritabanınızdan bilgi getirmeye hazırsınız demektir. Her Eloquent modelini, bu modelle ilişkilendirilen veritabanı tablosuna sorgu yapmanızı sağlayan güçlü bir sorgu aracı olarak düşünülebilir. Örnek olarak:

Kolon Değerlerine Erişmek

Bir Eloquent model örneğiniz varsa, karşılık gelen özellik yoluyla kolon değerlerine erişebilirsiniz. Örneğin, her Flight örneğini döngü yaparak name kolonunu gösterelim:

Kısıtlamalar Eklemek

Eloquent all metodu modelinizin tablosundaki sonuçların hepsini dönecektir. Her Eloquent modeli, sorgunuza kısıtlamalar ekleyebileceğiz ve sonra da get metodunu kullarak sonuçları alabileceğiz bir sorgu yapıcısı (query builder) sunar.

Koleksiyonlar