Laravel'de JSON Veri Üzerinde Sorgu Yapma

Laravel, JSON sütunları üzerinde etkili sorgular yapmanızı sağlayan bir dizi fonksiyona sahiptir.

where
,
whereJsonContains
ve
whereJsonLength
fonksiyonları, JSON sütunları üzerinde etkili ve esnek sorgular yapmanıza olanak tanır. 
 

where ile Kullanım

JSON sütunu içinde bir nesne varsa, bu nesnenin belirli bir özelliğini sorgulamak için

where
kullanabilirsiniz.

$users = DB::table('users')
              ->where('preferences->dining->meal', 'salad')
              ->get();

Bu örnek,

preferences
adlı JSON sütunu içindeki
dining
özelliğinin altındaki
meal
özelliğinde ’salad' sonucuna eşit olan kullanıcıları geri döndürecektir.
 

whereJsonContains Kullanımı

whereJsonContains
, JSON sütunları içinde belirli bir değeri aramak için kullanılır. Bu, özellikle JSON tipindeki sütunlarda dizi veya nesne içindeki bir değeri kontrol etmek için kullanışlıdır.
where
kullanımı ile aynı sonuçları elde edebiliriz.

$users = DB::table('users')
              ->whereJsonContains('options->languages', 'en')
              ->get();

Yukarıdaki örnekte,

options
adlı JSON sütunu içindeki
languages
özelliğinde 'en' değerini içeren kullanıcıları geri döndürecektir.
 

whereJsonLength Kullanımı

whereJsonLength
, JSON sütunlarının uzunluğunu kontrol etmek için kullanılır.

$users = DB::table('users')
              ->whereJsonLength('options->languages', '>', 1)
              ->get();

Yukarıdaki örnekte,

options
adlı JSON sütunu içindeki
languages
uzunluğu 1 den büyük olan kullanıcıları geri döndürecektir.