Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Eloquent’in increment() Fonksiyonunun İçinde Bulduklarım
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Eloquent’in increment() Fonksiyonunun İçinde Bulduklarım

Yazılım

Eloquent’in increment() Fonksiyonunun İçinde Bulduklarım

teknomers
Son güncelleme: 2 Nisan 2026 13:55
teknomers
Paylaş
Paylaş

Laravel uygulamalarında firstOrNew() ve increment() metodlarını kullanırken beklenmeyen bir davranışla karşılaşmanız mümkündür. Bu makalede, bu iki metodun etkileşimlerini bir envanter takip uygulaması üzerinden ele alacağız.

Amacımız, yeni gelen bir sevkiyat ile mevcut ürünün stok sayısını artırmak. Eğer ürün veritabanında yoksa, öncelikle yeni bir kayıt yaratılacak. firstOrNew() metodunu kullanmak bu iki durumu da ele almak için uygun görünüyordu.

Eğer bu iki metodu daha önce birlikte kullanmışsanız, aşağıda yazılanları bilmek faydalı olacaktır.

$incomingShipment = $inventoryItem::firstOrNew(['product_name' => 'Metallic Coffee Mug']);
        $incomingShipment->increment('stock_count', 50);
        

“Metallic Coffee Mug” veritabanında mevcut değildi. Dolayısıyla firstOrNew() yeni, kaydedilmemiş bir model örneği döndürdü — hiçbir id yok, birincil anahtar yok ve $model->exists = false.

Ardından increment() metodunu çağırdım.

Query Log’unda Neler Vardı

Veritabanında başlangıçta üç ürün bulunuyordu:

product_namestock_count
macbook air M410
DELL monitor5
Varmilo Keyboard3

increment('stock_count', 50) çağrısının ardından, her bir satır güncellendi:

product_namestock_count
macbook air M460
DELL monitor55
Varmilo Keyboard53

Hiçbir hata veya uyarı yoktu. Coffee Mug hâlâ mevcut değil — increment() yeni bir kayıt eklemedi.

increment() Nasıl Çalışır

Kaynağa incelediğimizde, increment() metodunun arka planda incrementOrDecrement() metodunu çağırdığını ve bunun $this->exists kontrolünü yaptığını göreceğiz.

Eğer exists = false ise, model henüz kaydedilmemiş demektir — ve sorguyu WHERE ifadesi olmadan çalıştırır. Böylece tüm tablo etkilenir.

Eğer exists = true ise, sorguyu modelin birincil anahtarına yönelik sınırlar. Bu genellikle beklenen davranıştır.

firstOrNew() hiçbir kayıt bulamazsa kaydedilmemiş bir model döndürür. Dolayısıyla exists değeri false olur ve increment() de sınırlandırılmış sorgu yolunu alır.

Bu İki Metodu Doğru Şekilde Kullanma

exists özelliğini bildiğinizde, bu davranış tam anlamıyla anlaşılır bir hâl alır. Çözüm, increment() çağrısından önce modelin kaydedilmesini sağlamaktır.

$incomingShipment = $inventoryItem::firstOrNew(['product_name' => 'Metallic Coffee Mug']);

        if (! $incomingShipment->exists) {
            $incomingShipment->stock_count = 0;
            $incomingShipment->save();
        }

        $incomingShipment->increment('stock_count', 50);
        

Alternatif olarak, firstOrCreate() metodunu kullanarak kayıt doğrudan oluşturulabilir; böylece increment() her zaman bir id ile çalışır.

Eloquent’un iç yapısına daldıkça, exists bayrağı etrafında nasıl tutarlı bir biçimde tasarlandığını görüyorum. Bu küçük özellik, birçok metodun sessizce bağımlı olduğu bir özelliktir.

Kaynak: Orijinal Makale

Contents
  • Query Log’unda Neler Vardı
  • increment() Nasıl Çalışır
  • Bu İki Metodu Doğru Şekilde Kullanma
Algolia’ya Para Ödemeyi Bırakın: PostgreSQL Tam Metin Aramasını Ustalıkla Kullanma 🐘
Claude Kod Rutinleri: Laravel İş Akışlarınızı Otomatiğe Alın
Neden “Soft Delete” Uygulamalarından Vazgeçip S3’ü Tercih Ettim: Fiziksel Temizleme İş Akışı Oluşturma
Laravel için Yerel WebDAV Sunucusu (v1.0.0)
Laravel Excel ile Filament dışa aktarmalarını genişletme
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Yeni Oyunları Keşfetmeyi Kolaylaştıran Steam Güncellemesi
Sonraki Makale Intel, İrlanda Ortak Girişimdeki %49 Hissesini Geri Alarak Fab 34’ün Kontrolünü Ele Geçirdi

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Favori Silah Türü İçin Beklenen Güncelleme Geldi
Oyun
Kritik Uyarı: Miasma Zararlısı npm Paketleri ve GitHub’ı Hedef Alıyor
Siber Güvenlik
Apple’ın En Güçlü Mac’leri 2027’ye Kadar Büyük Çip Güncellemelerini Bekleyebilir
Liste
Amazon Prime Günü’nde Son Saatlerde Kaçırılmayacak Fırsatlar!
Genel
Yükselen maliyetler AI tokenmaxxing partisini sarsıyor: Etkililik ölçümü belirsiz
Donanım
Haunted Chocolatier mükemmellik arayışında sabır gerektiriyor
Oyun
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?