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



我试图在我的数据库中插入一个数组变量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],
]);
}

我正在尝试插入一个带有变量的数组,以便它可以在成员表中具有关系

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

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

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

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],
]);
}
};

最新更新