Laravel veritabanı işlemleri

Merhabalar bu yazıda model kullanarak laravelde veri tabanından basit çekme ekleme ve silme işlemlerini yapacağız zaten bu temelleri bildikten sonra gerisi sizin hayal gücünüze kalmış istediğiniz yapabilirsiniz.

Model Nedir ?

Öncelikle model kavramından başlayalım laravelde model ne demek ne işe yarıyor?


Model veritabanımızda bulunan bir tabloya karşılık gelen sınıf olarak düşünebiliriz. Veri tabanından sürekli veri çekme veri tabanına ekleme gibi işlemleri zamana yaymak yerine bir dizi şeklinde verileri ekleyip daha sonra hepsini aynı anda veri tabanına ekleriz. Şimdi laravelde modeller nerede bulunur nasıl oluşturulur yapısı nasıldır bir bakalım.

Öncelikle laravelde bir model oluşturmak için yukarıdaki komutu yazıyoruz daha sonrasında ise modelimiz aşağıdaki görseldeki gibi bir konumda oluşuyor.

App klasörümüzün altında modelimiz oluştu şimdi modelimizin yapısına bakalım.

Gördüğünüz gibi bir sınıf şimdi bu sınıfın veri tabanımızda karşılık geleceği kolonları ayarlamamız lazım örneği fazla uzatmamak için basit bir kişiler tablosu oluşturacağım. Veri tabanı aşağıdaki gibidir.

Toplam 4 adet kolon var bunların birisi id olduğu için auto increment yani herhangi bir ekleme yapılmadan kendisi 1 den başlayarak artarak ilerleyecek. Yani doldurulabilir değil bundan dolayı onu eklememize gerek yok.
Not:Veritabanında created_at ve updated_at alanlarını eklediğinizde laravel otomatik olarak eklenme ve güncellenme tarihlerini veri tabanında düzenlemektedir.

Yukarıdaki bilgiler doğrultusunda oluşturduğumuz modelimiz görseldeki gibidir. Fillable Türkçe karşılığı doldurulabilir demektir. Kolonlarımızda doldurulabilir olan alanları fillable kısmına ekliyoruz. İlk önce Select işlemini anlatacağımdan dolayı veri tabanına elle veri ekliyorum.

Veri tabanından verileri çekip gösterebilmemiz için bir adet view oluşturuyorum view adı kişiler olacak.

Kişiler view oluşturuldu

Bu viewin çağırıldığında çalışması gereken kodlara yönlendirebilmek için bir route atayalım ve Controller kısmımızda kodlarımızı yazalım.

Veritabanından verileri çekme işlemlerini yapabilmek için öncelikle laravel .env dosyasını düzenlemek gerekiyor bu dosyayı görseldeki konumda bulabilirsiniz.

Bu dosyaya girdikten sonra işaretli yerlere uygun ayarları yapmanız gerekiyor.

1->Hangi veri tabanını kullanıyorsanız onu yazın
2->Veritabanı adınız benimkisi “db_laravel
3->Veri tabanı kullanıcı adınız
4->Veri tabanı şifreniz

Veri tabanı işlemlerimizi hallettik. Şimdi de controllerdaki fonksiyonumuzu yazalım.

Veri yollamak için yorum satırına aldığım alanı da kullanabilirsiniz.

Kisiler::all(); fonksiyonu veritabanımızdaki tüm kişileri çekecektir. Çektiğimiz kişileri tumKisiler adlı değişkenin içerisine kaydedelim ve bunu view’ımıza veritabaniKisiler şeklinde atalım

Dikkat! Classın en üstüne use App\Kisiler; komutunu eklemeyi unutmayın. Eklemezseniz aşağıdaki hata ile karşılaşmanız muhtemel.

Class ‘App\Http\Controllers\Kisiler’ not found
Class şekildeki gibi eklenmelidir.

Şimdi de view kısmında bir tablo içinde kişileri ekrana yazdıralım.

Laravel foreach yazımı şekildeki gibidir.

Her şeyi eksiksiz yaptığınız takdirde çıktınız aşağıdaki gibi olmalıdır.

Şimdi de sayfanın en alt kısmına basit bir form ekleyelim ve veritabanına ekleme işlemi yapalım.

Formumuzu ekledik şimdi de bu form post edildiğinde hangi controller’a göndereceğimizi belirten route komutunu yazalım.

Daha sonra controller’ımızdaki fonksiyonumuzu yazalım.

Eğer request içindeki _token adlı değişkeni unset ederseniz ve formunuzdaki inputların isimleri veritabanınızdaki kolonların isimleri ile aynı ise Kisiler::create($r->all()); diyerek bütün verileri kaydedebilirsiniz. Eğer formunuzdaki isimler ile veri tabanı kolon isimleriniz aynı olmazsa yorum satırı içinde yazılı kodları da kullanabilirsiniz.

Veritabanından silme işlemi

Bu silme işlemini yapmak için birden fazla yol mevcut isterseniz bir link oluşturup id’yi yollayabilirsiniz isterseniz de bir form işlemi ile post edip veriyi silebilirsiniz. Bu yöntemi de göstermek adına link ekleyip silme işlemini yapacağım. Öncelikle verilerimizin görüntülendiği tabloya bir kolon daha ekleyip buna da silme linkini ekleyelim.

linki ekledim bu linkimiz bizi örnek olarak localhost/kisiSil/1 gibi bir adrese gönderecek hemen bu linkin route işlemini tanımlayalım.
Not:link açıklaması görselde yazılmamış ; <a>SİL</a>

Evet route işlemi tanımladım id kısmı değişken olacağı için süslü parantezler içerisinde yazılı şimdi de fonksiyonumuzu yazalım.

Sadece silinecek olan kişinin id’sini yolladığımızdan dolayı (tek değişken yolladığımızdan ötürü) request sınıfını kullanmak yerine bir değişken kullandık. Dahasonra ise where komutu ile yollanan id’ye ait kaydı veritabanında arattık delete() fonksiyonu ile silme işlemini gerçekleştirdik.

Veri tabanı güncelleme işlemi

Güncelleme işlemini yapabilmek için silme işlemine benzer bir link oluşturuyoruz.

Bu linki kişinin ismi ile kullandım. Kişi ismine tıklandığında yönlendirilecek olan controller’ın route komutunu yazalım

Route işlemi göründüğü gibidir fonksiyonumuz da bir view’a gönderiyor. Göndermeden önce de kişiyi bulup veri tabanından çekiyoruz ve viewla birlikte gönderiyoruz.

Form yukarıdaki gibidir güncellenecek olan veriyi bulmamıza yardımcı olacak kişinin id’sini hidden(gizli) bir şekilde göndermeyi unutmayın !

Route işlemini de tamamladıktan sonra controllerdaki fonksiyonumuzu yazalım.

Controller’ımızdaki fonksiyonumuz da görseldeki gibidir. Doldurulan formdaki bilgiler ile veritabanından id’ye göre çektiğimiz satırın bilgilerini eşitliyoruz daha sonrasında ise save() fonksiyonu ile kaydediyoruz.

Bu yazım da bukadarlık olsun sürçü lisan ettiysem affedin Model ile ilgili kavramları Laravel’in kendi sitesinden bulabilirsiniz. Ben de birnevi kaynak olarak kullanmaktayım. Kaynak aşağıdadır.

https://laravel.com/docs/5.8/eloquent#eloquent-model-conventions
admin Yazar:

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir