2016-09-23 26 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