Laravel’de Güvenli Model (Mass Assignment) İşlemleri

tarafından
353
Laravel’de Güvenli Model (Mass Assignment) İşlemleri
Güzel Hosting

Daha önceki yazımız olan Eloquent ORM’de create işlemlerinde create() methodunda bu bilgiyi vereceğinden bahsetmiştik, bu yazımızda bu alacağımız bilgi mesajının neden kaynaklandığını ve bundan nasıl kurtulabileceğimiz konusunda bilgi verelim. Aslında Mass Assignment bizi düşünülerek yapılan bir işlemdir. Mass Assignment ile bize veritabanı işlemlerinden bir nebze olsun güvenliğin artabileceğini görebilirsiniz Laravel’de bize bunu güvenli model oluşturma olarak adlandırmaktır.. Mass Assignment ile ilgili ORM yapısında hangi kolonlara ulaşıp ulaşmayacağımız hakkında bazı talimatlar verebilmemize olanaklar tanır. Zaten default olarak kurmuş olduğumuz laravel yapılarında User modeline göz gezdirdiğimizde bu işlemleri görebilmekteyiz.

Aslında Mass Assignment ‘ı ilgili modele ekleyeceğimiz $fillable veya $guarded dizi ile geçebiliriz.
$fillable dizisinde belirtiğimiz kolon isimlerine create() işlemi yapabileceğimizi belirtiriz.
$guarded dizinde ise belirtiğimiz kolon isimleri dışındaki kalan tüm tablolara create() işlemi yapabileceğimizi belirtiriz.
İki diziyi aynı anda kullanmamanız gerekiyor birini kullanmamız yeterli gelecektir. Çünkü ikiside aynı kapıya açılacaktır.
Örneğin user tablosuna sur_name adından bir kolon ekleyelim buna create() methodu ile bir veri eklemeye çalıştığımızda eklemediğini göreceksiniz. Bunu $fillable dizine eklememiz gerekmektedir.

protected $fillable = [
    'name', 'sur_name', 'email', 'password',
];

 
Daha ayrıntılı bilgi için laravel dökümantasyonunu inceleyebilirsiniz.
Yararlı olabildiysem ne mutlu, Hatam var ise bildirilirse düzeltebilirim.