Maison > base de données > tutoriel mysql > le corps du texte

Voici quelques titres basés sur des questions qui correspondent au contenu de votre article : * **Erreur de contrainte de base de données Laravel : pourquoi ne puis-je pas supprimer une publication avec des mentions J'aime ?** * **Suppression des lignes parentales dans Laravel : comment

Mary-Kate Olsen
Libérer: 2024-10-25 10:37:31
original
178 Les gens l'ont consulté

Here are a few question-based titles that fit the content of your article:

* **Laravel Database Constraint Error: Why Can't I Delete a Post with Likes?**
* **Deleting Parent Rows in Laravel: How to Handle Foreign Key Constraints?**
* **SQLSTATE[23000]:

Erreur de contrainte de base de données dans Laravel : "Impossible de supprimer ou de mettre à jour une ligne parent"

Une erreur courante rencontrée dans Laravel est "SQLSTATE[23000 ] : Violation de la contrainte d'intégrité : 1451 Impossible de supprimer ou de mettre à jour une ligne parent." Cette erreur se produit lorsque vous essayez de supprimer une ligne d'une table parent qui a des lignes enfants dans une table associée.

Dans votre cas, vous rencontrez cette erreur lorsque vous tentez de supprimer une publication associée à des likes. En effet, la table des likes a une contrainte de clé étrangère qui fait référence à la table des publications. Lorsque vous essayez de supprimer une publication, elle ne peut pas être supprimée car il y a encore des enregistrements dans la table des likes qui en dépendent.

Pour résoudre cette erreur, vous pouvez modifier le schéma de votre base de données pour utiliser onDelete('cascade' ). Cela supprimera automatiquement les enregistrements enfants associés lorsque l'enregistrement parent est supprimé.

Schéma de likes mis à jour avec onDelete('cascade'):

<code class="php">Schema::create('likes', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('post_id')->unsigned();
    $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
});</code>
Copier après la connexion

Alternativement, vous peut supprimer manuellement les enregistrements enfants associés avant de supprimer l'enregistrement parent. Dans votre modèle Laravel, vous pouvez utiliser le code suivant pour ce faire :

<code class="php">$post->likes()->delete();
$post->delete();</code>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!