【发布时间】:2014-08-15 01:57:06
【问题描述】:
我无法触发模型事件。
目前我有以下
use Illuminate\Database\Eloquent\SoftDeletingTrait;
class ProjectTwitterStatus extends Eloquent {
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
protected $table = 'project_twitter_statuses';
protected $guarded = array('id');
public function twitterStatus() {
return $this->belongsTo('TwitterStatus');
}
public function twitterStatusHashtag() {
return $this->hasMany('TwitterStatusHashtag','twitter_status_id','twitter_status_id');
}
public function project() {
return $this->belongsTo('Project');
}
public static function boot()
{
parent::boot();
static::deleting(function($model)
{
echo 'deleting status';
});
}
}
并且删除是在辅助类中发起的:
public static function deleteStatus($input_ids, $project) {
// Make sure ids are in an array
$twitterStatusIds = (!is_array($input_ids) ? array($input_ids) : $input_ids);
foreach($twitterStatusIds as $twitterStatusId)
{
ProjectTwitterStatus::where('twitter_status_id', '=', $twitterStatusId)
->where('project_id','=',$project->id)
->delete();
}
// Forget the cache variable
Cache::forget('twitter-dashboard-statistics-'.$project->id);
return true;
}
删除工作正常,但不知何故模型事件没有被触发。 “删除状态”的回声是一个占位符,用于显示被触发的事件,我尝试了几个占位符,dd($model) 或创建一个文件都不起作用。所以我假设事件没有被触发。对这件事有什么看法吗?
【问题讨论】:
-
只是预感,尝试删除
SoftDeletingTrait并尝试一下。我想知道它是否是软删除,删除事件没有被调用。可能是一个错误。 -
我删除了
SoftDeletingTrait,但没有效果:(
标签: events laravel model laravel-4