雄辩的删除模型事件并不会触发

时间:2014-11-08 17:31:09

标签: laravel-4 model eloquent

我定义了2个模型:

程序模型:

class Program extends \Eloquent {

    protected $guarded = [];

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

        static::deleting(function($program)
        {
            DB::table('descriptions')->where('id',$program->id)->delete();
            return true;

        });
    }

    public function description()
    {
      return $this->hasOne('Description');
    }
}

描述模型,其中定义了程序的描述

class Description extends \Eloquent {

    protected $guarded = [];

    public function program()
    {
        return $this->belongsTo('Program','id','id');
    }
}

当我删除具有特定名称的程序时,我希望删除该程序的描述。

所以:

Program::where('name',Input::get('name'))->delete();

不幸的是,此代码不会触发程序模型的“删除”事件,并且不会删除说明。

什么错了?

1 个答案:

答案 0 :(得分:1)

解决方案是:

Program::where('name',Input::get('name'))->first()->delete();