2016-09-23 94 views
0

我对laravel softdelete阅读,此处恢复级联:Laravel 5: cascade soft delete雄辩的事件,我可以在模型类中使用它们吗?

其中一个用户说:

You should use Eloquent events for this. 

Offers::deleted(function($offer) { 
    $offer->services()->delete(); 
}); 
Offers::restored(function($offer) { 
    $offer->services()->withTrashed()->restore(); 
}); 

他没有提到在何处放置此代码,我感兴趣的监听雄辩删除,恢复活动。我可以在哪里放这个代码?我可以在模特班听吗?如果不放在哪里呢?

回答

1

我想......

<?php 
class Attribute extends Model implements Transformable 
{ 
//.... 
protected static function boot() { 
    parent::boot(); 

    static::deleting(function($model) { 
     foreach ($model->attributeValue()->get() as $attributeValue) { 
      $attributeValue->delete(); 
     } 
    }); 

} 

或者例如:

class BaseModel extends Model 
{ 
    public static function boot() 
    { 
     static::creating(function ($model) { 
     // blah blah 
     }); 

     static::updating(function ($model) { 
     // bleh bleh 
     }); 

     static::deleting(function ($model) { 
     // bluh bluh 
     }); 

     parent::boot(); 
    } 
} 
+1

感谢,这工作就像一个魅力 –

+0

:)伟大! Laravel大力支持! – Globsecure