SlideShare a Scribd company logo
1 of 3
Download to read offline
March 15,
2020
Mass Assignment Fillable atau Guarded ? Baiknya pakai
yang mana di laravel
adinata.id/laravel/mass-assignment-fillable-atau-guarded-baiknya-pakai-yang-mana-di-laravel/
Pada proses pengembangan aplikasi tentu kita akan sering menggunakan atau
melakukan mass Assignment jika aplikasi yang kita bangun merupakan aplikasi yang
statefull salah satu nya yaitu saat melakukan penambahan data ( insert ).
Di Laravel ada 2 cara agar kita dapat melakukan mass assigment antara lain :
menggunakan fillable
menggunakan guarded
Lalu apa bedanya antara fillable dengan guarded ? Pada variable fillable kita dapat
menambahkan attribute-attribute yang kita izinkan untu di isi pada saat proses
penambahan data ( insert ).sementara guarded adalah variable yang merupakan
kebalikan dari fillable dimana attribute yang terdapat di dalam guarded tidak diizinkan
untuk di lakukan mass assignment.
Agar lebih jelas mari kita coba dengan studi kasus saja dalam case ini kita coba membuat
sebuah model dengan nama contact pada model contact kita memliliki attribute antara
lain :
Nama
Alamat
Phone
1/3
misal pada saat menyimpan data kita hanya mengizinkan mass assignment untuk
attribute nama dan phone saja maka di dalam model contact kita dapat menggunakan
variable $fillable berikut contoh penggunaannya :
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Contact extends Model
{
protected $fillable = ['nama','phone'];
}
Perhatikan kode diatas dimana di dalam variable $fillable kita menambahkan array
dengan attribute nama dan phone dengan begitu ketika kita menambah data ( insert )
maka data yang tersimpan adalah hanya data nama dan phone saja.
Namun jika data field dalam tabel kita banyak bagaimana ? tentu menulis field-field yang
diizinkan untuk di insert akan menjadi menghabiskann waktu ? Tenang laravel sudah
memikirkan hal tersebut di saat itulah kita tepatnya menggunakan variable guarded
dimana fungsinya merupakan kebalikan dari fillable dengan guarded kita cukup
menambahkan field / attribute yang tidak di izinkan untuk di insert misal untuk data
yang tidak boleh di insert adalah field phone selain itu kita dapat menambahkan datanya
maka kita dapat menuliskan kodingnya sbb :
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Contact extends Model
{
protected $guarded = ['phone'];
}
Dari koding diatas maka selain field phone dapat kita tambahkan datanya.
Lalu jika ada kasus dimana saya mau seluruh field yang ada di tabel contact boleh di
izinkan untuk mass assignment tambah data ( insert ) lalu bagaimanan caranya ?
caranya simple kita dapat membuat variable guarded dimana nilainya berupa array
kosong saja untuk kode programnya sbb :
2/3
<?php
namespace App;
use IlluminateDatabaseEloquentModel;
class Contact extends Model
{
protected $guarded = [];
}
Pada koding diatas maka kita dapat melakukan mass assigment terhadap seluruh field
yang terdapat pada tabel contact.
Kesimpulan :
Dengan mempelajari kapan kita harus menggunakan fillable dan guarded tentu akan
sangat membantu kita untuk mengelola attribute yang diizinkan untuk melakukan mass
assignment pada attribute-attribute tertentu untuk di lakukan mass assignment ataupun
sebaliknya.
saya juga ada menulis mengenai penggunaan eloquent find dan all bagi anda yang ingin
mempelajarinya silahkan baca disini
Silahkan Bagikan tulisan ini agar lebih banyak programmer Laravel yang mendapatkan
manfaat dari tulisan ini.
Salam,
Adinata
3/3

More Related Content

More from Adi Nata

More from Adi Nata (15)

Tips Aman Dari Malware Dan Virus.pptx
Tips Aman Dari Malware Dan Virus.pptxTips Aman Dari Malware Dan Virus.pptx
Tips Aman Dari Malware Dan Virus.pptx
 
Spesifikasi Lengkap Mikrotik HAP AX2.pdf
Spesifikasi Lengkap Mikrotik HAP AX2.pdfSpesifikasi Lengkap Mikrotik HAP AX2.pdf
Spesifikasi Lengkap Mikrotik HAP AX2.pdf
 
Download Video Tiktok Tanpa Watermark.docx
Download Video Tiktok Tanpa Watermark.docxDownload Video Tiktok Tanpa Watermark.docx
Download Video Tiktok Tanpa Watermark.docx
 
filter data pada datatables server side 5 menggunakan yajra laravel adminlte
filter data pada datatables server side 5 menggunakan yajra laravel adminltefilter data pada datatables server side 5 menggunakan yajra laravel adminlte
filter data pada datatables server side 5 menggunakan yajra laravel adminlte
 
server side datatables menggunakan yajra 1 pada laravel admin lte
server side datatables menggunakan yajra 1 pada laravel admin lteserver side datatables menggunakan yajra 1 pada laravel admin lte
server side datatables menggunakan yajra 1 pada laravel admin lte
 
integrasi template admin lte terbaru dengan laravel 7
integrasi template admin lte terbaru dengan laravel 7integrasi template admin lte terbaru dengan laravel 7
integrasi template admin lte terbaru dengan laravel 7
 
Cara mudah membuat layout,import layout dan render layout pada inertia js
Cara mudah membuat layout,import layout dan render layout pada inertia jsCara mudah membuat layout,import layout dan render layout pada inertia js
Cara mudah membuat layout,import layout dan render layout pada inertia js
 
membuat paginate di laravel vue dengan inertia js
membuat paginate di laravel vue dengan inertia jsmembuat paginate di laravel vue dengan inertia js
membuat paginate di laravel vue dengan inertia js
 
cara mudah menampilkan data laravel vue dengan inertia js
cara mudah menampilkan data laravel vue dengan inertia jscara mudah menampilkan data laravel vue dengan inertia js
cara mudah menampilkan data laravel vue dengan inertia js
 
mengenal dan implementasi request menggunakan inertia js
mengenal dan implementasi request menggunakan inertia jsmengenal dan implementasi request menggunakan inertia js
mengenal dan implementasi request menggunakan inertia js
 
cara set maintenance mode laravel 6 di shared hosting
cara set maintenance mode laravel 6 di shared hostingcara set maintenance mode laravel 6 di shared hosting
cara set maintenance mode laravel 6 di shared hosting
 
mengenal inertia js solusi membangun web spa tanpa harus membuat api
mengenal inertia js solusi membangun web spa tanpa harus membuat apimengenal inertia js solusi membangun web spa tanpa harus membuat api
mengenal inertia js solusi membangun web spa tanpa harus membuat api
 
memberikan nama pada route laravel
memberikan nama pada route laravelmemberikan nama pada route laravel
memberikan nama pada route laravel
 
tutorial cara mudah instalasi laravel 6
tutorial cara mudah instalasi laravel 6tutorial cara mudah instalasi laravel 6
tutorial cara mudah instalasi laravel 6
 
eloquent filter vs reject pada laravel 7
eloquent filter vs reject pada laravel 7eloquent filter vs reject pada laravel 7
eloquent filter vs reject pada laravel 7
 

mass assignment fillable atau guarded baiknya pakai yang mana di laravel

  • 1. March 15, 2020 Mass Assignment Fillable atau Guarded ? Baiknya pakai yang mana di laravel adinata.id/laravel/mass-assignment-fillable-atau-guarded-baiknya-pakai-yang-mana-di-laravel/ Pada proses pengembangan aplikasi tentu kita akan sering menggunakan atau melakukan mass Assignment jika aplikasi yang kita bangun merupakan aplikasi yang statefull salah satu nya yaitu saat melakukan penambahan data ( insert ). Di Laravel ada 2 cara agar kita dapat melakukan mass assigment antara lain : menggunakan fillable menggunakan guarded Lalu apa bedanya antara fillable dengan guarded ? Pada variable fillable kita dapat menambahkan attribute-attribute yang kita izinkan untu di isi pada saat proses penambahan data ( insert ).sementara guarded adalah variable yang merupakan kebalikan dari fillable dimana attribute yang terdapat di dalam guarded tidak diizinkan untuk di lakukan mass assignment. Agar lebih jelas mari kita coba dengan studi kasus saja dalam case ini kita coba membuat sebuah model dengan nama contact pada model contact kita memliliki attribute antara lain : Nama Alamat Phone 1/3
  • 2. misal pada saat menyimpan data kita hanya mengizinkan mass assignment untuk attribute nama dan phone saja maka di dalam model contact kita dapat menggunakan variable $fillable berikut contoh penggunaannya : <?php namespace App; use IlluminateDatabaseEloquentModel; class Contact extends Model { protected $fillable = ['nama','phone']; } Perhatikan kode diatas dimana di dalam variable $fillable kita menambahkan array dengan attribute nama dan phone dengan begitu ketika kita menambah data ( insert ) maka data yang tersimpan adalah hanya data nama dan phone saja. Namun jika data field dalam tabel kita banyak bagaimana ? tentu menulis field-field yang diizinkan untuk di insert akan menjadi menghabiskann waktu ? Tenang laravel sudah memikirkan hal tersebut di saat itulah kita tepatnya menggunakan variable guarded dimana fungsinya merupakan kebalikan dari fillable dengan guarded kita cukup menambahkan field / attribute yang tidak di izinkan untuk di insert misal untuk data yang tidak boleh di insert adalah field phone selain itu kita dapat menambahkan datanya maka kita dapat menuliskan kodingnya sbb : <?php namespace App; use IlluminateDatabaseEloquentModel; class Contact extends Model { protected $guarded = ['phone']; } Dari koding diatas maka selain field phone dapat kita tambahkan datanya. Lalu jika ada kasus dimana saya mau seluruh field yang ada di tabel contact boleh di izinkan untuk mass assignment tambah data ( insert ) lalu bagaimanan caranya ? caranya simple kita dapat membuat variable guarded dimana nilainya berupa array kosong saja untuk kode programnya sbb : 2/3
  • 3. <?php namespace App; use IlluminateDatabaseEloquentModel; class Contact extends Model { protected $guarded = []; } Pada koding diatas maka kita dapat melakukan mass assigment terhadap seluruh field yang terdapat pada tabel contact. Kesimpulan : Dengan mempelajari kapan kita harus menggunakan fillable dan guarded tentu akan sangat membantu kita untuk mengelola attribute yang diizinkan untuk melakukan mass assignment pada attribute-attribute tertentu untuk di lakukan mass assignment ataupun sebaliknya. saya juga ada menulis mengenai penggunaan eloquent find dan all bagi anda yang ingin mempelajarinya silahkan baca disini Silahkan Bagikan tulisan ini agar lebih banyak programmer Laravel yang mendapatkan manfaat dari tulisan ini. Salam, Adinata 3/3