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 ?

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 ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-07 19:54:03430parcourir

Why am I getting the error

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn