Laravel,“修改”集合仅保存最后一个值

Laravel,“修改”集合仅保存最后一个值,laravel,Laravel,我试图修改集合,但修改后的值不正确,它只保存最后一个ID public function addAllQuizsToActivities($activities){ foreach ($activities as $key => $activity) { if($activity->activity_type_id == env("QUIZ_TYPE_ID") && !isset($activity->

我试图修改集合,但修改后的值不正确,它只保存最后一个ID

public function addAllQuizsToActivities($activities){
        foreach ($activities as $key => $activity) {
            if($activity->activity_type_id == env("QUIZ_TYPE_ID") && !isset($activity->quiz_submit_id)){
                $quiz_submit_ids = QuizSubmit::where('quiz_id', $activity->id)->pluck('id');
                foreach ($quiz_submit_ids as $quiz_submit_id) { // values = 1,2,3,4
                    $activity->quiz_submit_id = $quiz_submit_id;
                    dump($activity->quiz_submit_id); 
                    $activities->push($activity);
                }               
                $activities->forget($key);
            }
        }
    
        return $activities;
    }
但是最后,
$activities
使用
quick\u submit\u id
只保存最后一个id(
4
)。
我的逻辑有些问题,但我不确定是什么问题。

您确定您的逻辑正确吗!isset($activity->quick\u submit\u id)将阻止
if
语句执行,前提是
quick\u submit\u id
具有真实值,这意味着不会将任何内容推送到该集合元素。