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



我有两个模型:Project>规划我有一个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()

原件:

你需要注册你的观察员。您可以在AppProvidersEventServiceProviderboot方法上注册它。

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

最新更新