Laravel 5.4 : Erreur "Le champ n'a pas de valeur par défaut"
Problème :
Vous recevez l'erreur « Le champ 'user_id' n'a pas de valeur par défaut » lorsque vous tentez de créer un nouvel objet Match via un objet Deal. Votre classe Match a le tableau $guarded défini sur un tableau vide, mais cela ne résout pas le problème.
Solution :
L'erreur suggère que la table de base de données pour matches nécessite une valeur non nulle pour la colonne user_id. Pour résoudre ce problème, mettez à jour votre classe Match pour spécifier les champs à remplir au lieu des champs gardés :
protected $fillable = ['user_id', 'deal_id'];
Explication :
Dans Laravel, par défaut, tous les champs sont gardés, ce qui signifie qu’ils ne peuvent pas être attribués en masse. Il s’agit d’éviter les failles de sécurité. En définissant un tableau remplissable, vous spécifiez quels champs peuvent être attribués en masse. Dans ce cas, les champs user_id et deal_id sont les seuls qui peuvent être définis lors de la création d'un nouvel objet Match.
En utilisant le tableau remplissable au lieu du tableau gardé, vous autorisez la définition du champ user_id lors de la création d'un nouveau Match. Cela résoudra l'erreur et vous permettra de créer avec succès de nouvelles correspondances.
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!