Laravel’de Gelişmiş Veritabanı (Eloquent ORM) İşlemleri

Laravel’de Gelişmiş Veritabanı (Eloquent ORM) İşlemleri

Öncelikle hepimiz birer yazılımcı olarak sql sorgularının ne kadar meşakatli ne kadar yazan kişiyi yorduğunu biliriz ve hep bu işlemlerin daha kolay bir şekli aranı dururdu. Tamda bizim bu anımızda yardımımıza koşan seçenek ORM olarak olacaktır. ORM (Object Relational Mapping) bize veritabanıyla ilişkilerimizde araya giren araya girerken bize bazı kolaylık ve imkanlar sunan bir veri tabanı işleme modülü diyebiliriz. Bu yazımızda anlatacağımız Eloquent ORM ise bu yapılardan bir framework’üdür. Eloquent ORM ‘yi laravel’de kullanabilmek için bir model yapımızın olması gerekmektedir model yapılarında MVC sistemlerde ufakta olsa bahsetmiştik bu katmadan unutmadıysak veritabanı işlemleri yapılıyordu, model yapısı ile bir çok işlemi kolay bir şekilde yapabiliyoruz. ORM ‘nin bize sunacağı en büyük kolaylık ise veritabanı ile yaptığımız işlemlerde talimatları ORM’ye bildirerek biz yapılan işlemlere karışmıyor olmamız yani biz ORM’ye verdiğimiz bir select işlemini arka planda işleyerek veritabanında aldığı sonucu bize ulaştırıyor. Herhangi bir veritabanı programlama işlemiyle yazılmadığı için bu sorguları bugün MySQL için yapıyorsak yarın bir gün bir kaç değişiklik ile MsSQL’e aktarıyor olabilmemizdir.

Model Oluşturma

php artisan make:model Product-m
// -m migrate ile birlikte oluştur.

Model oluşturmada önerim tekil isimler kullanmanız olacaktır bunun çogul takısı ile laravel bize bir veritabanı oluşturmak için migrate oluşturacaktır. Yani üst kısımdaki model ile laravel’in kabul ettiği veritabanı adı products biz bunu değiştirmek istediğimizde alt kısımdaki kod’u ilgili modele eklememiz gerekmektedir.

protected $table = "urunler";

Üst kısımdaki kod’u ilgili model’e eklemezsek laravel users tablosunu arayacaktır. İlgili model’i oluşturduktan sonra ilgili migrate işlemlerini yapıyoruz. Migrate işlemlerimizde eski yazılarımızda bahsetmiştik. Bu işlemlerin ardın gelin CRUD işlemlerinden bahsedelim.
 

Insert (C)

$urun = New Product;
$urun->name= "Monitör";
$urun->code= 12345;
$urun->save();
// Product Modelini ile yeni bir nesne oluşturarak bu nesneyi save() methodu ile kayıt ediyoruz.
// Product modelini kullanmak için Use ile ilgili yere çağrılması gerekmektedir bunu phpstorm'da Alt+Enter ile ekleyebiliriz.
Product::create([
"name" => "Monitör",
"code" => 12345
]);
// Bu kod ile eklemelerde mass assigment bilgisi alınmaktır. Bunun ilgili bir yazı yazdım.

Select (R)

$urun = Product::find(1);
// Sadece 1 ID'li ürünü getirir.
$urun = Product::where('id',1)->first;
// Yine Sadece 1 ID'li ürünü getirir fakat bu sefer bir obje olarak çevirir.
$urun = Product::where('id',1)->get();
// Query Builder ile tüm verileri bir dizi olarak çeker.
$urun = Product::all();
// Bütün verileri çeker.

Burada tüm Query Builder methodlarını kullanabiliriz. Bu işlemlerin yanında Collection‘a çevirerek bir çok kolaylıktan yararlanabiliriz.

Update (U)

$urun = Product::find(1);
$urun->name= "Monitör";
$urun->code= 123456;
$urun->save();
Product::find(1)->update([
"name" => "Monitör",
"code" => 123456
]);

Delete (D)

Product::find(1)->delete();
//İlgili model'de soft delete aktif değilse direk veriyi imha edecektir.

Daha ayrıntılı bilgi için laravel dökümantasyonunu inceleyebilirsiniz.
Yararlı olabildiysem ne mutlu, Hatam var ise bildirilirse düzeltebilirim.

Beğen  
Yazar

2008, Yılından beri sistem ve yazılım teknolojileri ile ilgilenmekteyim. Ayrıntılı bilgi için hakkımda sayfamı inceleyebilirsiniz.

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yapılan Yorum (1)