为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel - 多对多保存,如何在 foreach 中合并两个数组

Laravel - 多对多保存,如何在 foreach 中合并两个数组

PHP
狐的传说 2023-04-28 17:15:19
当涉及到迭代两个安排以将两者的信息保存在一个表中时,我有一种情况。下面的代码不正确,但它是我想要做的事情的本质。    $userid = request()->input('user_id');    $scores = request()->input('score');    $courses = new Course(request(['course_id']));    foreach ($scores as $score AND $courses as $course){        $courses->users()->attach($userid,['score'=>$score, 'course_id' =>$course]);    }我一直在使用组合数组的功能,但它唯一做的就是将一个数组的键与另一个数组的值组合,这不是我想要的。    foreach (array_combine($scores, $courses)  as $score => $course){        $courses->users()->attach($userid,['score'=>$score, 'course_id' =>$course]);    }
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

你可以这样做:


foreach($scores as $index => $score) {

  $courses->users()->attach($userid, ['score' => $score, 'course_id' => $courses[$index]]);

}

注意,$courses和$scores都需要是数组。仔细检查此行是否$courses = new Course(request(['course_id']));实际创建了$courses数组。


希望能帮助到你。


查看完整回答
反对 回复 2023-04-28
  • 1 回答
  • 0 关注
  • 98 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信