Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich verwandte Zeilen automatisch löschen, wenn ich ein Modell in Laravel Eloquent lösche?
Automatisches Löschen verwandter Zeilen in Laravel mit Eloquent ORM implementieren
Die Standardmethode delete() von Eloquent ORM löscht eine einzelne Zeile. Um diese Funktionalität zu erweitern und verwandte Zeilen automatisch zu löschen, verwenden Sie Eloquent-Ereignisse.
Problem:
Wie können Sie eine Zeile anhängen, wenn Sie sie mit $user->delete() löschen? ein automatischer Rückruf zum Löschen verwandter Zeilen, z $this->photo()->delete()?
Lösung:
Das Ereignis löschen wird vor dem Löschen ausgelöst( )-Methode aufgerufen wird. Durch Definieren eines Ereignishandlers innerhalb der Modellklasse können Sie beim Löschen Bereinigungsaufgaben ausführen.
<?php namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { public function photos() { return $this->has_many('Photo'); } // This method is called before delete() is called protected static function booted () { static::deleting(function (User $user) { $user->photos()->delete(); }); } }
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie kann ich verwandte Zeilen automatisch löschen, wenn ich ein Modell in Laravel Eloquent lösche?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!