Heim > Backend-Entwicklung > PHP-Tutorial > Wie lösche ich verwandte Zeilen automatisch, wenn ich ein Modell in Laravel Eloquent lösche?

Wie lösche ich verwandte Zeilen automatisch, wenn ich ein Modell in Laravel Eloquent lösche?

Patricia Arquette
Freigeben: 2024-12-10 17:13:16
Original
250 Leute haben es durchsucht

How to Automatically Delete Related Rows When Deleting a Model in Laravel Eloquent?

Automatisches Löschen verwandter Zeilen in Laravel (Eloquent ORM)

Im Eloquent ORM von Laravel können Sie beim Löschen eines Datensatzes mit $user->delete(); Sie möchten verwandte Zeilen automatisch löschen, z. B. $this->photo()->delete(). Dies kann erreicht werden, indem Sie das Löschereignis in Ihrer Modellklasse verwenden.

Um den Ereignishandler einzurichten, befolgen Sie diese Schritte:

Benutzerdefinierter Modellereignishandler

namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    public function photos()
    {
        return $this->has_many('Photo');
    }

    // this is a recommended way to declare event handlers
    protected static function booted()
    {
        static::deleting(function(User $user) { // before delete() method calls this
            $user->photos()->delete();
            // perform additional cleanup if necessary
        });
    }
}
Nach dem Login kopieren

Durch die Definition des Löschereignishandlers werden jedes Mal, wenn ein Benutzermodell gelöscht wird, auch die zugehörigen Fotomodelle automatisch gelöscht. Um die referenzielle Integrität sicherzustellen, wird empfohlen, den Löschvorgang in eine Transaktion einzuschließen.

Das obige ist der detaillierte Inhalt vonWie lösche ich verwandte Zeilen automatisch, wenn ich ein Modell in Laravel Eloquent lösche?. 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