在Laravel中将模型作为关系删除时,删除的观察者不工作

在Laravel中将模型作为关系删除时,删除的观察者不工作,laravel,laravel-8,Laravel,Laravel 8,我有两个模型:项目>计划 我有一个PlanningObserver,当计划被删除时,我想从存储中删除文件夹。如果我删除一个计划本身,它就可以正常工作。 但是,当我删除项目(即删除规划)时,文件夹不会被删除 规划观察员: public function deleted(Planning $planning) { $this->deleteDialuxData($planning); } private function deleteDialuxDat

我有两个模型:项目>计划 我有一个PlanningObserver,当计划被删除时,我想从存储中删除文件夹。如果我删除一个计划本身,它就可以正常工作。 但是,当我删除项目(即删除规划)时,文件夹不会被删除

规划观察员:

public function deleted(Planning $planning)
    {
        $this->deleteDialuxData($planning);
    }

    private function deleteDialuxData(Planning $planning) {
        $directory_path = $planning->user_id . '/' . $planning->custom_planning_id . '/';
        Storage::disk('dialux')->deleteDirectory($directory_path);
    }

项目控制器:

public function destroy(Project $project)
    {
        if (auth()->user()->id !== $project->user_id) {
            return response()->json(['message' => 'Kein Zugriff'], 403);
        }

        $project->plannings()->delete();

        $project->delete();
        return response()->noContent();

    }
有什么问题吗?

编辑:

我误读了密码<代码>$project->plannings()->delete()不会触发任何模型事件。如果您想删除所有计划并仍然触发事件,可以这样做:
$project->plannings()->get()->each->delete()

原件:

你需要注册你的观察员。您可以在
App\Providers\EventServiceProvider
boot
方法中注册它

/**
 * Register any events for your application.
 *
 * @return void
 */
public function boot()
{
    User::observe(UserObserver::class);
}

非常感谢你!那太好了!