Laravel Tip: “wasRecentlyCreated” Model Attribute

Bu yazı 2018 yılında yazıldı. Bazı bilgiler ve araçlar güncelliğini yitirmiş olabilir.

Merhabalar,

Bu yazıda Laravel’de pek bilinmeyen bir ipucunu paylaşacağım 🙂

Bildiğiniz gibi Eloquent ile ilgili tablomuza yeni bir satır eklemek istediğimizde ve eğer kayıt etmek istediğimiz değerde bir kayıt varsa yeniden kayıt etmek yerine aynı kaydı döndürmek istediğimizde firstOrCreate kullanıyoruz.

$company = Company::firstOrCreate([
    'name' => 'Freebird Airlines'
]);

Buraya kadar herşey iyi güzel elimizde $company adında bir değişken ve değişkenimizin içerisinde DB’den aldığımız değerimiz var. Alınan değer eğer yeni bir kayıt oluşturularak alınmışsa kullanım senaryonuza bağlı olarak farklı bir işlem yapmak istiyorsanız Modelinizdeki wasRecentlyCreated özelliğini kullanabilirsiniz.

wasRecentlyCreated özelliği Illuminate\Database\Eloquent\Model’de tanımlıdır ve default değeri false’dir. Yeni bir kayıt eklendiğinde ise değeri true olur.

$company = Company::firstOrCreate([
    'name' => 'Freebird Airlines'
]);

if ($company->wasRecentlyCreated) { 
   // Yeni bir şirket oluşturuldu. 
} else { 
   // Şirket DB'de var farklı aksiyonlar al. 
}

Bir sonraki yazılarda görüşmek üzere 🙂

Mustafa Toker

Backend mühendisi ve ekip lideri. JVM, Spring Boot, Oracle ve yapay zekâ destekli yazılım geliştirme üzerine sahadan notlar yazıyorum.