Veritabanına kayıt eklemeye ek olarak, Query builder, update yöntemini kullanarak veritabanında kayıtlı olan verileri de güncelleyebilir. Update yöntemi, insert yöntemi gibi, güncellenecek sütunları gösteren bir dizi sütun ve değer çiftini kabul eder. Where ifadesini kullanarak güncelleme sorgusunu istediğimiz veriler üzerinde yapmak için kullanabiliriz.

Örnek kullanımı şu şekildedir.

$affected = DB::table('kisiler')
              ->where('id', 1)
              ->update(['yas' => 26]);

Yukarıdaki kod parçacığı id değeri 1 olan kaydın yas değerini 26 olarak güncelleyen işlemi yapmaktadır.

Laravel Update Or Insert İşlemi

Bunu direk örnekle açıklamak istiyorum. Mesela veritabanımızda bir değer değiştirmek isteyelim. Ama veritabanımızda öyle bir değer yok. Bu işlem sonucunda programımız mantıksal olarak çalışmayacaktır. Eğer veritabanında bir değeri değiştirmek istiyorsak ama o değer yoksa ve bizde veritabanında o değerin olmasını istiyorsak updateOrInsert metodunu kullanabiliriz.

Temel kullanımı şu şekildedir:

DB::table('kisiler')
    ->updateOrInsert(
        [ 'email' => 'John@bilisim34.net',  'name' => 'John'],
        ['votes' => '2']
    );

updateOrInsert metoduna gönderilen ilk parametre arama parametresidir. Yani ilk dizideki değerleri sorgu veritabanında arar. Eğer bulursa ikinci dizideki değerleri günceller. Bulamaz ise ilk ve ikinci dizilerdeki değerlerle yeni bir kayıt oluşturur.

Laravel Increment ve Decrement Kullanımı

Laravel de veritabanında kayıtlı belli sütunların değerlerini artırmak ve azaltmak için increment ve decrement metotları kullanılır.

2 parametre alır birinci parametre artırılacak veya azaltılacak sütun 2. parametre ise artırma veya azaltma sayısı. 2. parametre boş bırakılabilir ancak ilk parametre zorunludur.

Temel kullanımı şu şekildedir.

DB::table('users')->increment('age');
DB::table('users')->increment('age', 5);
DB::table('users')->decrement('age');
DB::table('users')->decrement('age', 5);

 

Shares:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir