hcan Merhaba Anladığım kadarıyla $cast kullanımı field type değiştirmemize yarıyor. Neden bir field'ın type değiştirme ihtiyacı duyuyoruz ? Örnek olarak field alanlarını EncryptCast class'ı ile create yaparken şifreleyip,get yaparken çözüyor. Mutators Accessors ile yapmak daha doğru değil mi?Yoksa ben bu $cast'i yanlış mı anladım. Teşekkürler
mgsmus hcan $cast bilinen tipler için hızlı çözüm sunar. $cast objesi kullandığınızda tek tek alanlar için accessor/mutator tanımlamanıza gerek kalmaz. $cast objesi kullandığınızda diğer modellerde, istediğiniz alanlarda kullanabilirsiniz, kod kopyalamayı önler. $cast size daha fazla seçenek sunar ve bunları daha organize edilmiş şekilde kullanmanıza olanak sağlar. hcan Neden bir field’ın type değiştirme ihtiyacı duyuyoruz ? Objeleri ve basit yapıları veritabanlarında PHP içindeki haliyle tutamazsınız, serialize etmeniz lazım. Çekerken de unserialize etmeniz lazım. Veritabanındaki tarih alanlarını Carbon objesi olarak kullanmak size büyük kolaylık sağlar. Birçok veriyi otomatik çevrilmiş olarak almak işinizi kolaylaştırır.
BoraN7 Bende tam hakim değilim ama örneğin UUID için kullandığım bir paket cast kullanıyor. Yaptıgı şey ise(anlayabildiğim kadarıyla), veritabanında binary16 olarak tutulan uuid 'yi view e gönderirken string e çevirmek. Sorgu yaparkende ters şekilde.
alprnkeskekoglu Aslında temel mantığı veritabanından veri çekerken ve ya set ederken senin herhangi bir değişimi yapmadan otomatik laravel kendisi yapıyor. Mesela veritabanında bir veri sadece "0" ve "1" değerleri alabiliyor eğer bunu boolean'a cast edersen kullandığın class'larda bunun kontrolünü yapabilirsin. Bu veri boolean olmak zorunda gibi
hcan alprnkeskekoglu Bu veri booelan olmak zorunda diyorsak bunu validate içindede sorgulayabiliriz.O zaman şöyle diyebilir miyiz: Validate edilmeyen yerlerde type sorgulama yapabilir , $cast içinde sorguladığımız için validate içinde tekrar sorgulamaktan bizi kurtarır.