Laravel Where Kullanımı

Bu yazımızda Veritabanından veri çekerken filtreleme işlemi yapmamızı sağlayan where komutunun laravel ile nasıl kullanıldığına değineceğiz.

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\Requestuse 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\Requestuse 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\Requestuse DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->where('age''>'15)
        ->orWhere('name''Zafer')
        ->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\Requestuse DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->whereBetween('age', [1100])
        ->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\Requestuse DB;
class UserController extends Controller
{
    public function index()
    {  
 $users = DB::table('users')
                    ->whereNotBetween('votes', [1835])
                    ->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\Requestuse DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->whereIn('id', [123])
        ->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\Requestuse DB;
class UserController extends Controller
{
    public function index()
    {  
        $users = DB::table('users')
        ->whereNotIn('id', [123])
        ->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\Requestuse 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\Requestuse 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();

YAZAR HAKKINDA

26 Yaşında. Araştırmayı seven, bir şeyler öğretmeye meraklı bir Bilgisayar Mühendisi

2 YORUM

Muhammed Fatih BAĞCIVAN

06-July-2021

Hocam ellerinize emeğinize sağlık 😊 gayet yararlı bir paylaşım olmuş Çok teşekkür ederiz 😊


Cafer Elibol

23-August-2021

Gayet güzel , teşekkürler


Yorum Yap

@COPYRIGHT KodlamakLazım Tüm Hakları Saklıdır.