Erreur SQL: 1452: Impossible d'ajouter ou de mettre à jour une ligne enfant: une contrainte de clé étrangère échoue
J'ai deux tables dans ma base de données:
order
;course
.
order
a une colonne courseid
les références de colonne id
de la course
table. Chaque fois que j'ai essayé de faire saveAll()
dans CakePHP
ci-dessus SQL
message d'erreur s'affiche et les données ne seront pas enregistrées.
S'il vous plaît ajouter votre code de modèle à votre question. Seulement la relation liaisons
OriginalL'auteur Vinay | 2011-03-10
Vous devez vous connecter pour publier un commentaire.
Ce que ça dit, c'est qu'entre vos tables, vous avez la contrainte de clé étrangère dans la base de données. Ce à dire que dans la colonne course_id vous ne pouvez pas insérer des valeurs autres que les id de la table étrangère.
L'erreur ci-dessus signifie que lorsque vous postez vos données à l'étranger champ est vide ou manquante.
Quoi regarder:
1. Vérifiez si dans votre base de données à l'étranger champ dans la table enfant peut accepter NULL. Si vous avez liste déroulante avec les valeurs et l'option par défaut est vide si le domaine n'accepte pas la valeur NULL cette erreur peut se produire
2. La vérification de vos données dans le contrôleur, si vous passez la variable dans l'exemple: $this->data['Commande']['course_id'] si elle est vide ou manquante voir le point 1.
OriginalL'auteur Nik Chankov
Je vais répondre juste pour le plaisir de quelqu'un d'autre avec un problème similaire à la recherche d'une réponse. Travailler avec l'ORM dans d'autres cadres, j'ai fait l'erreur d'essayer d'attribuer des rôles ou d'autres données avant de les enregistrer ce que j'ai été l'ajout d'un rôle à l'. Exemple:
La création d'un nouvel utilisateur-
L'utilisateur est créé, mais en essayant d'ajouter avant le rôle de l'utilisateur est enregistré, vous vous retrouvez avec un utilisateur sans rôle exact de l'erreur en cours de cracher, de retour à vous.
OriginalL'auteur WeaponsTheyFear