Heim  >  Artikel  >  Datenbank  >  Hier sind einige fragenbasierte Titel, die zum Inhalt Ihres Artikels passen: * **Laravel-Datenbankeinschränkungsfehler: Warum kann ich einen Beitrag mit „Gefällt mir“-Angaben nicht löschen?** * **Übergeordnete Zeilen in Laravel löschen: Anleitung

Hier sind einige fragenbasierte Titel, die zum Inhalt Ihres Artikels passen: * **Laravel-Datenbankeinschränkungsfehler: Warum kann ich einen Beitrag mit „Gefällt mir“-Angaben nicht löschen?** * **Übergeordnete Zeilen in Laravel löschen: Anleitung

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-25 10:37:31179Durchsuche

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]:

Datenbankeinschränkungsfehler in Laravel: „Eine übergeordnete Zeile kann nicht gelöscht oder aktualisiert werden“

Ein häufiger Fehler in Laravel ist „SQLSTATE[23000 ]: Verletzung der Integritätsbeschränkung: 1451 Eine übergeordnete Zeile kann nicht gelöscht oder aktualisiert werden.“ Dieser Fehler tritt auf, wenn versucht wird, eine Zeile aus einer übergeordneten Tabelle zu löschen, die untergeordnete Zeilen in einer zugehörigen Tabelle hat.

In Ihrem Fall tritt dieser Fehler auf, wenn Sie versuchen, einen Beitrag zu löschen, der mit „Gefällt mir“-Angaben verknüpft ist. Dies liegt daran, dass die Likes-Tabelle über eine Fremdschlüsseleinschränkung verfügt, die auf die Posts-Tabelle verweist. Wenn Sie versuchen, einen Beitrag zu löschen, kann er nicht gelöscht werden, da in der Likes-Tabelle noch Datensätze vorhanden sind, die davon abhängen.

Um diesen Fehler zu beheben, können Sie Ihr Datenbankschema so ändern, dass onDelete('cascade' ). Dadurch werden die zugehörigen untergeordneten Datensätze automatisch gelöscht, wenn der übergeordnete Datensatz gelöscht wird.

Aktualisiertes Likes-Schema mit 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>

Alternativ Sie Sie können die zugehörigen untergeordneten Datensätze manuell löschen, bevor Sie den übergeordneten Datensatz löschen. In Ihrem Laravel-Modell können Sie dazu den folgenden Code verwenden:

<code class="php">$post->likes()->delete();
$post->delete();</code>

Das obige ist der detaillierte Inhalt vonHier sind einige fragenbasierte Titel, die zum Inhalt Ihres Artikels passen: * **Laravel-Datenbankeinschränkungsfehler: Warum kann ich einen Beitrag mit „Gefällt mir“-Angaben nicht löschen?** * **Übergeordnete Zeilen in Laravel löschen: Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn