Maison > développement back-end > tutoriel php > Comment supprimer automatiquement les lignes associées lors de la suppression d'un modèle dans Laravel Eloquent ?

Comment supprimer automatiquement les lignes associées lors de la suppression d'un modèle dans Laravel Eloquent ?

Patricia Arquette
Libérer: 2024-12-10 17:13:16
original
276 Les gens l'ont consulté

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

Suppression automatique des lignes associées dans Laravel (ORM Eloquent)

Dans l'ORM Eloquent de Laravel, lors de la suppression d'un enregistrement à l'aide de $user->delete();, vous pouvez souhaitez supprimer automatiquement les lignes associées, telles que $this->photo()->delete(). Ceci peut être réalisé en utilisant l'événement de suppression dans votre classe de modèle.

Pour configurer le gestionnaire d'événements, suivez ces étapes :

Gestionnaire d'événements de modèle personnalisé

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
        });
    }
}
Copier après la connexion

En définissant le gestionnaire d'événements de suppression, chaque fois qu'un modèle utilisateur est supprimé, les modèles photo associés seront également automatiquement supprimés. Pour garantir l'intégrité référentielle, il est recommandé d'encapsuler le processus de suppression dans une transaction.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal