Maison > Article > base de données > Pourquoi est-ce que j'obtiens l'erreur « Le champ 'user_id' n'a pas de valeur par défaut » lors de la création d'une nouvelle correspondance dans Laravel 5.4 ?
Erreur : "Le champ 'user_id' n'a pas de valeur par défaut" dans Laravel 5.4
Question :
Lorsque vous tentez de créer une nouvelle correspondance à l'aide d'un objet Deal, l'erreur suivante se produit :
QueryException in Connection.php line 647: SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value (SQL: insert into matches (deal_id) values (1))
Malgré un tableau $guarded vide, pourquoi cette erreur est-elle générée ?
Réponse :
Le tableau $guarded empêche l'affectation en masse à tous les champs, à l'exception de ceux explicitement mentionnés. Pour résoudre le problème, supprimez le tableau $guarded et définissez le tableau $fillable à la place.
Solution :
Dans la classe Match, ajoutez ce qui suit :
protected $fillable = ['user_id', 'deal_id'];
Cela permettra l'affectation en masse aux champs user_id et deal_id, qui sont nécessaires à la création d'une nouvelle correspondance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!