无法在 Laravel 控制器中插入带有变量的数组

Can't insert array with a variable in Laravel Controller

我正在尝试使用变量 member_id 在我的数据库中插入一个数组。

HTML

我的控制器

这项工作没有 member_id

 foreach ($request->moreFields as $key => $value) {
                Permit::create($value);
  }

这不适用于会员 ID

foreach ($request->moreFields as $key => $value) {
            Permit::create([    
                'member_id' => $member_id,
                'license_type' => $request->license_type[$i],
                'license_number' => $request->license_number[$i],
                'registration_date' => $request->registration_date[$i],
                'expiration_date' => $request->expiration_date[$i],
            ]);
        }

我正在尝试插入一个带有变量的数组,以便它可以在成员的 table

中建立关系

我看不到其余的代码,但我猜你正在使用一个闭包,它从你的循环范围中删除了 $member_id。如果是这种情况,那么 use 关键字将允许您访问闭包范围之外的变量。例如-

function () use ($member_id) { // pass $member_id into scope of closure
    foreach ($request->moreFields as $key => $value) {
        Permit::create([    
            'member_id' => $member_id,
            'license_type' => $request->license_type[$i],
            'license_number' => $request->license_number[$i],
            'registration_date' => $request->registration_date[$i],
            'expiration_date' => $request->expiration_date[$i],
        ]);
    }
};

您可以在将数组插入数据库之前修改数组,例如 array_merge()

foreach ($request->moreFields as $key => $value) {
    Permit::create(array_merge($value, ['member_id' => $member_id]));
}