Laravel Eloquent ORM Üzerinde firstOrCreate Kullanımı
Hepinize merhaba dostlarım 😊. Hıphızlı geçen bir haftanın ardından gelen pazar gününü güzel bir şekilde değerlendirmek elbett hepimizin hakkı bunu siz de ben de biliyorum. Ve gelen pazar gününü fırsat bilerek ben de uzun sürenin ardından Laravel ile ilgili bir makale yazmak istedim.
Yalnız baştan belirtmek isterim ki dostlarım konumuz diğer konulara göre kısa olacaktır. Şimdi içinizden geçmiştir şimdi
Hocam keşke kısa olmasa ne güzel uzun uzun oluyordu okuyorduk
şeklinde söylenimler oluyor ki bunu yakın çevremden de duyuyorum özellikle kısa yazı yazacağım zamanlarda.
Dostlarım ümitsizliğe kapılmayın konumuz gayet basit ve kısa. Aynı zamanda da yazılım camiasında da kullanılan bir yapı buna şahit oldum birkaç kez 😊.
Peki Biz Bu Makalede Hangi Konuyu Görcez ?
Eveeeet artık söözü daha fazla uzatmadan gelelim asıl meselemize. Bu makalemizde Laravel frameworkünde ORM üzerinde pratik bir kullanımı olan ve bazı durumlarda veri tabanında varlığını kontrol etmek istediğimiz, Eğer varlığı yoksa da o kaydı eklemesini istediğimiz bir yapı olan firstOrCreate yapısını göreceğiz. Şimdi konumuza geçmeden önce firstOrCreate yapısı neyin nesiymiş onu bir inceleyelim 😊
Nedir Bu firstOrCreate ?
Şimdiiii merakınızın arttığını ve
Hocam hadi ama laf kalabalığı yapmayın 😄 Nedir bu yapı cidden merak ettik
gibi söylenmelerinizi rahat rahat görüyorum. Şimdi konumuza gelelim.
Bir veri tabanınız var ve içerisinde işle yaptığınız bir tablo var diyelim. Bu tablo üzerinde herhangi bir kayda ulaşacağımız durumlarda şartları yazıp o kayda ulaşmamız çok basit. Ya yoksa ne yapcaz ?
İşte bu durumda firstOrCreate yapısı bizim gönderdiğimiz değerlerle eşleşen kayıt varsa onu getiriryor, eğer yoksa bizim gönderdiğimiz değerdeki verilerle bir kayıt açıyor ve onu ekranımıza getiriyor. Şimdi hep beraber bu işlemler nasıl yapılıyor gelin ona hızlıca bir bakalım.
Öncelikle dostlarım veri tabanımızı oluşturalım varsayalım. Ben bu makalede örnek olarak Products tablosu oluşturdum. İçerisine de aşağıdaki şekildeki gibi 2 adet kayıt ekledim
şeklinde 2 adet kayıt mevcut. Ben şimdi örnek veriyorum "50 TL lik Beyaz Gömlek" eklemek istiyorum. Hemen editörümü açıyorum ve
$result = \App\Models\ProductModel::firstOrCreate(array(
"name" => "Beyaz Gömlek",
"price" => 50
));
dd($result);
şeklinde kodlarımı yazdım. Ekrana gelip baktığımda karşıma gelecek olan sonuç
şeklinde bir çıktı gelecektir. Dikkat ettiyseniz az önce benim göndermiş olduğumuz veriler ekrana geldi. Veri tabanımıza bakalım şimdi de herhangi bir şey var mı yok mu. Hemen PHPMyAdmin e gelip kodlarımıza baktığımızda gelecek olan sonuç
şeklinde olacaktır. Yani bize aslında program diyor ki
Dostum sen bir veri eklemek istedin. Ama senin gönderdiğin verilere ait bir kayıt zaten mevcut. Eklemeye gerek yok
şeklinde bir söylemde bulundu. Hadi bu veri var siz de ben de görüyorum. Gelelim bu sefer farklı bir kayıt ekleme talebinde bulunalım. Hemen editörümü açayım ve
$result = \App\Models\ProductModel::firstOrCreate(array(
"name" => "Kırmızı Atkı",
"price" => 30
));
dd($result);
şeklinde kodumu yazdım. Ekranımı yenilediğimde karşımıza gelecek olan çıktı
şeklinde verilerimiz geldi. Tamam bu kısma kadar çok güzel herhangi bir sorun sıkıntı yok 10 numara. Peki bu kayıt bizim veri tabanımıza eklendi mi ona bir bakalım. Hemen PHPMyAdmin i açalım ve karşımıza gelecek olan sonuç
şeklinde karşımıza çıktı gelecektir ve Bingooo 💯. İşlemler başarılı
Eveeeet dostlarım bu makalemizde de Laravel frameworkünde ORM üzerinde firstOrCreate yapısını elimden geldiğince dilimden döndüğünce anlatmaya çalıştım. Umarım faydalı olmuşumdur. Eksik veya hatalı bir anlatım yapmış isem benimle iletiişime geçmekten çekinmeyin. Konu başlarda biraz karmaşık veyaz zor gelebilir dostlarım anlıyorum. Özellikle öğrenme süreci içerisinde bu gibi durumlarla karşılaşmamız son derece doğaldır. Bu süreç içerisinde sizlerden istediğim tek şey her yazımda da dediğim gibi "İstikrarlı ve Azimli Olmalısınız. Bolca Pratik Yapmalısınız.". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır.
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊
Yazar Hakkında
Kendi Halinde Bir Backend Developer