Maison >développement back-end >tutoriel php >Comment puis-je supprimer automatiquement les lignes associées lors de la suppression d'un modèle dans Laravel Eloquent ?
Implémenter la suppression automatique des lignes associées dans Laravel à l'aide d'Eloquent ORM
La méthode delete() standard d'Eloquent ORM supprime une seule ligne. Pour étendre cette fonctionnalité et supprimer automatiquement les lignes associées, utilisez les événements Eloquent.
Problème :
Lorsque vous supprimez une ligne avec $user->delete(), comment pouvez-vous la joindre un rappel automatique pour supprimer les lignes associées, comme $this->photo()->delete()?
Solution :
L'événement deleting est déclenché avant la suppression( ) la méthode est appelée. En définissant un gestionnaire d'événements dans la classe de modèle, vous pouvez effectuer des tâches de nettoyage lors de la suppression.
<?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(); }); } }
Remarques supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!