Interview question
What is the difference between $fillable and $guarded in Eloquent models? Eloquent models में $fillable और $guarded में क्या अंतर है?
Answer
Both control mass assignment protection - preventing attackers from setting unintended fields via bulk input like User::create($request->all()).
| Property | Behavior |
|---|---|
| $fillable | Whitelist - only listed fields can be mass-assigned |
| $guarded | Blacklist - listed fields cannot be mass-assigned, everything else can |
class User extends Model
{
protected $fillable = ['name', 'email', 'password'];
// OR
protected $guarded = ['is_admin', 'id'];
}Using $fillable is generally safer since new sensitive columns are protected by default rather than needing to be explicitly added to a blacklist.
दोनों mass assignment protection control करते हैं - attackers को unintended fields set करने से रोकते हैं।
| Property | व्यवहार |
|---|---|
| $fillable | Whitelist - सिर्फ listed fields assign हो सकते हैं |
| $guarded | Blacklist - listed fields assign नहीं हो सकते |
class User extends Model
{
protected $fillable = ['name', 'email', 'password'];
}Was this answer clear?