Fillable vs Guarded
Fillable and Guarded attributes are used to work with the Laravel Eloquent ORM system to create the possibilities for the mass-assignable fields restrictions and specifications in terms of protecting data from unwanted access and manipulation by users.
What is Fillable?
Fillable lets you specify which fields are mass-assignable in your model. Let’s take the above example, you can do it by adding the special variable $fillable to the model. So in the model:
class Student extends Model { protected $fillable = ['first_name', 'last_name', 'email']; // only the field names inside the array can be mass-assign }
What is Guarded?
Guarded is the reverse of fillable. If fillable specifies which fields to be mass assigned, guarded specifies which fields are not mass assignable. So in the model:
class Student extends Model { protected $guarded = ['id', 'student_type']; // the field name inside the array is not mass-assignable }
protected $guarded = ['*'];
// block all the fields from being mass-assigned
protected $guarded [];
// make all the fields mass assignable
For more information about fillable vs guarded, you can check Laravel’s official website here.
You can find more articles about Laravel here.