Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Laravel 4 Cascading Soft Deletes

Ich habe kaskadierende Löschungen, die mit Modellereignissen funktionieren , zum Beispiel binde ich in einem Produktmodell an das gelöschte Ereignis, damit ich alle Beziehungen vorläufig löschen kann:

    // Laravel's equivalent to calling the constructor on a model
    public static function boot()
    {
        // make the parent (Eloquent) boot method run
        parent::boot();    

        // cause a soft delete of a product to cascade to children so they are also soft deleted
        static::deleted(function($product)
        {
            $product->images()->delete();
            $product->descriptions()->delete();
            foreach($product->variants as $variant)
            {
                $variant->options()->delete();
                $variant->delete();
            }
        });
    }