/** * Register any other events for your application. * * @param \Illuminate\Contracts\Events\Dispatcher $events * @return void */ public function boot(DispatcherContract $events) { parent::boot($events); Question::deleting(function ($Question) { // Deleted all answers for this question foreach ($Question->answers as $Answer) { $Answer->delete(); } }); Question::restoring(function ($Question) { // Restored all answer for this foreach ($Question->answers()->withTrashed()->get() as $Answer) { $Answer->restore(); } }); Prototype::deleting(function ($Prototype) { // Deleted all questions for this foreach ($Prototype->questions as $Question) { $Question->delete(); } }); Prototype::restoring(function ($Prototype) { // Restored all question for this foreach ($Prototype->questions as $Question) { $Question->restore(); } }); User::deleting(function ($User) { // Deleted all assigners this user foreach ($User->assigners as $Assigner) { $Assigner->delete(); } }); Answer::deleting(function ($Answer) { // Deleting image if ($Answer->image) { unlink($Answer->image); } }); }