2014-05-22 71 views
0

我有以下型号:模型事件不工作

class ProjectTwitterStatus extends Eloquent { 

    protected $table = 'project_twitter_statuses'; 

    protected $softDelete = true; 

    protected $guarded = array('id'); 

    public static function boot() 
    { 
     parent::boot(); 

     ProjectTwitterStatus::deleting(function($projectTwitterStatus) 
     { 
      $projectTwitterStatus->deleted_by = Auth::user()->id; 
     }); 
    } 

    public function twitterStatus() { 
     return $this->belongsTo('TwitterStatus'); 
    } 

    public function twitterRetweet() { 
     return $this->belongsTo('TwitterRetweet','twitter_status_id','twitter_status_id'); 
    } 

    public function project() { 
     return $this->belongsTo('Project'); 
    } 
} 

某处在我的应用程序中的项目是使用下面的语句之一删除:

ProjectTwitterStatus::find($id)->delete(); 
ProjectTwitterStatus::whereIn('twitter_status_id', $twitterStatusIds)->delete(); 

我可以在数据库中的项目看已被(软)删除。但是,deleted_by列未填充。

有谁知道我在做什么错?

+0

尝试把父::启动()的ProjectTwitterStatus后::删除()函数 - 这是否解决了吗? – Laurence

+0

为deleted_by您可以尝试我的解决方案https://github.com/fico7489/laravel-revisionable-upgrade – fico7489

回答

1

尝试使用Late Static Binding,像以下事项

class ProjectTwitterStatus extends Eloquent { 

    public static function boot() 
    { 
     parent::boot(); 

     static::deleting(function($projectTwitterStatus) 
     { 
      $projectTwitterStatus->deleted_by = Auth::user()->id; 
     }); 
    } 

}