L'affectation en masse est un processus d'envoi d'un tableau de données qui seront enregistrées simultanément dans le modèle spécifié. En général, vous n'avez pas besoin d'enregistrer les données de votre modèle une par une, mais plutôt en un seul processus.
L'affectation de masse est bonne, mais il y a certains problèmes de sécurité derrière elle. Que faire si quelqu'un transmet une valeur au modèle et sans protection, il peut définitivement modifier tous les champs, y compris l'ID. Ce n'est pas bon.
Supposons que vous ayez une table "étudiants", avec les champs "student_type, first_name, last_name" . Vous voudrez peut-être attribuer en masse "first_name, last_name", mais vous voulez éviter que le student_type soit directement modifié. C'est là que les champs remplissables et gardés ont lieu.
Fillable vous permet de spécifier quels champs sont assignables en masse dans votre modèle, vous pouvez le faire en ajoutant la variable spéciale $fillable
au modèle. Donc dans le modèle:
class Student extends Model {
protected $fillable = ['first_name', 'last_name']; //only the field names inside the array can be mass-assign
}
les ' student_type ' ne sont pas inclus, ce qui signifie qu'ils sont exemptés.
Guarded est l'inverse de fillable. Si remplissable spécifie les champs à attribuer en masse, guarded spécifie quels champs ne peuvent pas être affectés en masse. Donc dans le modèle:
class Student extends Model {
protected $guarded = ['student_type']; //the field name inside the array is not mass-assignable
}
vous devez utiliser $ fillable ou $ guarded - pas les deux.
Pour plus de détails, ouvrez le lien: - Affectation en masse