Heim > Datenbank > MySQL-Tutorial > Hauptteil

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
Freigeben: 2024-10-25 10:37:31
Original
178 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!