我有一个TaskObserver类,用于记录活动。
当我尝试使用
删除任务时:: find()
功能,它反映在任务删除观察器中。
$task = Task::find($id);
$task->delete();
当我尝试使用删除集合时
$task = Task::find($id);
$subTasks = Task::where('parent_id', $task->id)->delete();
它不反映任何子任务的删除观察器。
是,我搜索发现 Laravel Event Observer 。它告诉使用:: find()方法,以便在观察者中反映出来。
我是否必须遍历所有子任务并使用:: find()方法?
$subTasksId = Task::where('parent_id', $task->id)->pluck('id');
foreach($subTasksId as $subTaskId){
$deleteSubTask = Task::find($subTask)->delete();
}
答案 0 :(得分:1)
如果要使用删除观察器,则必须获取模型实例,然后将其删除
$subTasks = Task::where('parent_id', $task->id)->get(['id']);
foreach($subTasks as $subTask){
$deleteSubTask = $subTask->delete();
}