J'ai environ 200 champs dans une table qui sont numérotés:
field_1
field_2
etc
J'ai essayé d'insérer des données dans le tableau:
Result::insert($data);
Où $data
est un tableau multiple:
$data = [] = array("field_1" => 3);
$data = [] = array("field_1" => 2);
Puis-je définir *
en option protected $fillable = ["*"];
pour rendre tous les champs remplissables?
Si vous devez définir toutes les colonnes comme remplissables, procédez comme suit dans le modèle:
protected $guarded = [];
Si vous souhaitez rendre tous les attributs assignables en masse, vous pouvez définir la propriété $ guarded comme un tableau vide
Dans un tel scénario, vous pouvez essayer de faire l'inverse. Par exemple: id
, created_at
et updated_at
champ comme $ gardé. Comme:
protected $guarded = ['id', 'created_at', 'updated_at'];
Sauf que ces restes seront considérés comme fillable
c'est-à-dire affectables en masse .
Vous pouvez trouver des détails dans Official Laravel Doc
Attributs de garde
Alors que $ fillable sert de " liste blanche " d'attributs qui devraient être assignable en masse, vous pouvez également choisir d'utiliser $ guarded . La propriété $ guarded doit contenir un tableau d'attributs que vous ne souhaitez pas affecter en masse. Tous les autres attributs ne figurant pas dans le tableau seront affectables en masse. Ainsi, $ guarded fonctionne comme une " liste noire ". Bien sûr, vous devez utiliser $ fillable ou $ guarded - not tous les deux.