Laravel GraphQL kullanımı #2 tablo oluşturma, veri ekleme silme, ilişki işlemleri

evet dersimizin 2bölümüne geçelim. şunu tekrar etmekte fayda görüyorum. benim de öyle ahım şahım bir bilgim yok. sadece videoda gördüğüm uyguladığım çeşitli fonksiyonları size gösteriyorum. işe yarıyor bunu geliştirmek 2 tablodan yüz tabloya çıkarmak sizin hayal gücünüzde.

iki tane tablo oluşturuyoruz. bunları migration ile yapıyoruz. bunun için aşağıdaki kodları kullanın ki modeli oluştururken tablo dosyasını da oluştursun.

bunu yaptığınızda hem model dosyamızı hem de migration klasörü altında 2019_01_02_074138_create_categories_table.php ve 2019_01_02_074147_create_books_table.php dosyamızı kendi oluşturuyor.

şimdi geliyoruz categories_table.php public up fonksiyonu içine

books_table.php içine aşağıdaki kodları yazıyoruz.

php artisan migrate diyerek de bu tabloları veritabanımıza ekliyoruz. env dosyasında veritabanı ayarlarını yapmayı unutmayın.

neyse sonuç olarak book ve categori tablolarımızı oluşturduk. şimdi bunların model dosyalarına gelip ilişki kuruyoruz.

Category.php modelimize gelip;

fonksiyonu yazıyoruz. Book modelimize de gelip;

bunu yazıyoruz. artık tablolarımızdaki ilişkilerimizi kurduk. buna seeder ile rastgele kayıtlar ekleyin 10-20 tane seeder ile yapabilirsiniz kolaydır daha önce anlatmıştık. burayı pas geçiyor ve hepsinde 20-30 veri olduğunu düşünüyorum. artık tablomuz da dolu. bunu da koyduk cebimize. şimdi graphql işlerimize geçelim.

routes/graphql/schema.graphql dosyasını açıp alt tarafa bu iki tablomuzu tanıtalım.

yine aynı dosyada type Query { ile başlayan kısmın içine de aşağıdakileri yazıyoruz.

bakın şimdi demiş olduk ki query kardeşim sana book isimli bir query gelirse onun içinde de bir id değeri olacak git onu alt tarafta type book diye bir şey yazmıştım ya orada yer alan idye göre ara sonuç olarak bulunan değeri göster.

ilkinde ise books diye bir query gelirse ne kadar Book varsa getir. categories içinde gördüğünüz gibi benzer şeyleri yaptık. şimdi graphql sayfamızı açalım ve sorgularımızı yazalım.

sonuçlar gelmiş olmalı. bide find yapalım idye göre

kategoriyi de böyle yapabilirsiniz. şimdi orada iki method daha var. booksByFeatured ve someComplexQuery. bunları tanıtmak gerekirse ilki ile başlayayım. Featured öne çıkarılanlar anlamına gelmekte. Yani tanıtımlarda ilk sırada yer alacak kitaplar veritabanında Featured bölümünde Boolean olarak tanımlanmış yani 0-1 true false. Biz diyeceğiz ki abi sen bana featured değeri 1 olanları getir. nasıl mı yapacağız?

featured değeri true olanları getirdi. böylelikle farklı bir kolonda true false üzerinden işlem yapmayı da öğrendik. şimdi bize like da lazım. içinde a geçenler b geçenler. Bunu da someComplexQuery ile yapacağız. Bunu nasıl yapacağız peki?

someComplexQuery içine bakalım ilk önce search diye bir değişkene string bir veri istiyor karşılığında ise Book tablosunda ne varsa göster diyor. iyi hoş ama book tablosunda bir sürü kolon var hangisinde arama yapıyor?? onu da artisan komutları ile çözüceğiz. burada oluşturduğumuz metod adı ile query adımız aynı olmak zorunda.

Bu dosya app/Http/GraphQL/Queries/ içinde SomeComplexQuery.php olarak oluşuyor. bunun fonksiyon bölümüne sadece şu ufak kodu yazıyoruz.

$args olarak geliyor gönderdiğimiz veriler haberiniz olsun. Aslında böylelikle query oluşturmayı da öğrendik. tabi eminim daha güzel fonksiyonları da vardır ama bildiğim kadarıyla anlatıyorum.

ilişki kurmayı, arama yapmayı, query sorgu oluşturmayı öğrendik. ya dostum iyi hoş diyorsun ama ekleme silme işlemini nasıl yapacağız diyorsun. hemen ona geçelim

Bunun için Mutation adı verdikleri bir method var. bunun içine;

rules yazanlar kontrol işlemi biliyorsunuz. gereklidir 10 kelime olsun yüz kelime olsun gibi validateleri içerir.

az çok okuyorsunuzdur ve ne anlama geldiklerini çözmüşünüzdür. ben bi kere de çalıştırayım gerisi size kalmış. yoruldum çünkü.

id ve name değeri de eklediğimi görmek için. yani bunu ekledim idsi ve ismi bu diyor. basit gördüğünüz gibi. bu query içinde değil mutation içinde bu detaya dikkat tabi.

book kısmını da siz yapabilirsiniz. şimdi bunun videolu halini paylaşan kanalı ve dosyalarını aşağıdaki linklere tıklayarak öğrenebilirsiniz. Andre Madarang abimize kardeşimize bize bunu öğrettiği için teşekkür ederiz. kanal github

Bir cevap yazın

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