Where İfadesi
Laravel ile veritabanı sorguları yaparken sorgularımıza where ifadesi eklemek için where metodunu kullanabiliriz.
Where metodu 3 parametre alır. İlk parametresi veritabanında filtreleyeceğimiz sütun adı, ikinci parametresi operatör ve üçüncü parametresi ise değerdir.
Şimdi örnek bir kodla açıklayalım. users adında bir tablomuz olduğunu varsayalım. Bu tablodan age değeri 18’den büyük olanları çekmek isteyelim. Yazacağımız laravel sorgusu şu şekilde olur. Bu sorgular genellikle controller dosyalarında yapılır.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->where('age', '>', 18) ->get(); } }
Where metoduna ikinci parametreyi girmezsek kendisi otomatikman = operatorü girilmiş gibi davranır.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->where('age', 18) ->get(); // age değeri 18 olan kayıtları getirir. } }
Ayrıca where metoduna dizi şeklinde veri gönderebiliriz. Bu şekilde birden fazla where ifadesi kullanacağımız zaman tek where metodu ile bu işlemi halledebiliriz.
$users = DB::table('users')->where([ ['status', '=', '1'], ['subscribed', '<>', '1'], ])->get();
Laravel orWhere Kullanımı
Or ifadesiyle birbirine bağlanan koşulların herhangi biri sağlanırsa koşul gerçekleşir. Laravel’de orWhere metodu da bu işlemi yapar. Kullanımı where metoduyla aynıdır. 3 parametre alır. 2. parametreyi girmezseniz operatörü otomatikman eşittir olarak kabul eder.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->where('age', '>', 15) ->orWhere('name', 'ali') ->get(); } }
Laravel whereBetween ve orWhereBetween Kullanımı
whereBetween metodu ile bir sütun değerinin gireceğimiz iki değer aralıkları arasındaki kayıtlı olan verilerini çekebiliriz.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->whereBetween('age', [1, 100]) ->get(); } }
Laravel whereNotBetween Kullanımı
Eğer çekeceğimiz değerler iki farklı değer arasındaki değerlerin haricindeki değerler ise whereNotBetween metodunu kullanırız.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->whereNotBetween('votes', [18, 35]) ->get(); } }
Yukaridaki index metodundaki sorgu yaşı 18 ile 35in arasındaki değerlerden farklı , veritabanında kayıtlı olan verileri çeker.
Laravel whereIn Kullanımı
whereIn metodu, belirli bir sütunun değerinin verilen dizi içinde olan değerlerle eşleşen verilerini getirir.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->whereIn('id', [1, 2, 3]) ->get(); } }
Laravel whereNotIn Kullanımı
whereNotIn metodu ise bir sütun değerinin dizi olarak metoda gönderdiğimiz verilerin içerisinde olan verilerin haricindeki verileri getirmek için kullanılır.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->whereNotIn('id', [1, 2, 3]) ->get(); } }
Laravel whereNull Kullanımı
whereNull yöntemi, verilen sütunun değerinin NULL ise sonuçları getirir.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->whereNull('updated_at') ->get(); } }
Laravel whereNotNull Kullanımı
Bu metot ise parametre olarak verdiğimiz sütunun değeri null olmayan verilerini getirir.
$users = DB::table('users') ->whereNotNull('updated_at') ->get();
Laravel whereDate Kullanımı
Belirli bir tarihe ait kayıtları getirmek için kullanılır.
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; class UserController extends Controller { public function index() { $users = DB::table('users') ->whereDate('created_at', '2016-12-31') ->get(); } }
Laravel whereMonth Kullanımı
Belirli bir ayda kayıt edilmiş verileri getirmek için kullanılır.
$users = DB::table('users') ->whereMonth('created_at', '12') ->get();
Laravel whereDay Metodu
Belirlediğimiz bir günde kaydedilmiş verileri getirmek için kullandığımız metottur.
$users = DB::table('users') ->whereDay('created_at', '31') ->get();
Laravel whereYear Kullanımı
Belirlediğimiz bir yılda kaydedilmiş verileri getirmek için kullanılır.
$users = DB::table('users') ->whereYear('created_at', '2016') ->get();
Laravel whereTime Kullanımı
Bir sütunun değerini belirli bir zamanla karşılaştırmak için whereTime yöntemi kullanılabilir.
$users = DB::table('users') ->whereTime('created_at', '=', '11:20:45') ->get();
Laravel whereColumn Kullanımı
whereColumn yöntemi, iki sütunun eşit olduğunu doğrulamak için kullanılabilir.
$users = DB::table('users') ->whereColumn('first_name', 'last_name') ->get();
Ayrıca, whereColumn yöntemine bir karşılaştırma operatörü de ekleyebilirsiniz.
$users = DB::table('users') ->whereColumn('updated_at', '>', 'created_at') ->get();
Ayrıca, whereColumn yöntemine bir dizi sütun karşılaştırması da iletebilirsiniz. Bu koşullar ve operatörü kullanılarak birleştirilir.
$users = DB::table('users') ->whereColumn([ ['first_name', '=', 'last_name'], ['updated_at', '>', 'created_at'], ])->get();