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:
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 }); } }
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!