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

问题描述 投票:0回答:2

我正在尝试使用变量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],
            ]);
        }

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

php laravel eloquent
2个回答
2
投票

您可以在将数组插入数据库之前对其进行修改,例如

array_merge()

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

0
投票

我无法确定其余的代码,但我猜测您正在使用一个闭包,该闭包会从循环范围中删除

$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],
        ]);
    }
};
© www.soinside.com 2019 - 2024. All rights reserved.