Laravel - Masse d'erreur d'Exception
Je suis en train d'enregistrer plusieurs lignes à une table, cependant, je me suis présenté avec un Mass Assignment Error
.
L'erreur est: Illuminate \ Database \ Eloquent \ MassAssignmentException criteria_id
$criteria->save();
$criteria_id = $criteria->id;
foreach(Input::get('bedrooms') as $bedroom){
$new_bedroom=array(
'criteria_id' => $criteria->id,
'bedroom' => $bedroom,
);
$bedroom = new Bedroom($new_bedroom);
$bedroom->save();
}
Ma structure de base de données est:
donc il n'y a pas de fautes d'orthographe. Le criteria_id vient de la variable à partir de la récemment enregistré des critères (voir le code ci-dessus forloop).
Toute aide serait grandement appréciée.
Est le
non, il n'est pas. Le tableau est vide. J'ai d'accéder à la variable plus tard dans le code qui fonctionne parfaitement bien, qui est à l'intérieur d'un
criteria_id
dans le $fillable
tableau du modèle?non, il n'est pas. Le tableau est vide. J'ai d'accéder à la variable plus tard dans le code qui fonctionne parfaitement bien, qui est à l'intérieur d'un
foreach
boucle aussi. - ->attach($criteria_id)
.OriginalL'auteur | 2014-11-03
Vous devez vous connecter pour publier un commentaire.
Pour être en mesure de définir les propriétés en les passant au modèle du constructeur, vous devez dresser une liste de toutes les propriétés dont vous avez besoin dans le
$fillable
tableau. Comme mentionné dans le DocsVous pouvez également utiliser le
create
méthode si vous le souhaitez. Il crée un nouveau modèle et l'enregistre directement:attr_accessible
OriginalL'auteur lukasgeiter
La inverse de ce que lukas a dit est "surveillé". Au lieu de "liste blanche" des champs, vous avez juste à déclarer qui sont gardés.
Par exemple:
Ce n'était plus utile pour moi, car je n'ai pas vraiment à la plupart des domaines.
Obtenu à partir de la documentation pour Laravel 5.2 mais je suppose qu'il fonctionne sur des versions plus anciennes.
Pour permettre à tous les champs, vous pouvez simplement fournir un tableau vide:
OriginalL'auteur csga5000