我定义了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();
不幸的是,此代码不会触发程序模型的“删除”事件,并且不会删除说明。
什么错了?
答案 0 :(得分:1)
解决方案是:
Program::where('name',Input::get('name'))->first()->delete();