我在laravel 5.1上工作。我一直想着如何将我的2个数组输入存储到DB上的同一行。我只知道如何存储一个数组。
$amount[] = $request->amount;
$receipt[] = $request->receipt;
foreach ($amount as $key => $value) {
$reimbursement_item = ReimbursementItem::create([
'user_id' => $user->id,
'amount' => $value,
]);
}
DB structure and aspect result:
id user_id amount receipt
-- ------- ------ --------------
1 32 40.00 /images/r1.jpg
2 24 60.00 /images/r2.jpg
答案 0 :(得分:2)
如果您可以更新您的请求对象结构,那就更好了,就像应该有一个数组,并且每个数组索引都有值和收据的值而不是单个数量和收据数组
$data[] = $request->data;
foreach ($data as $key => $value) {
$reimbursement_item = ReimbursementItem::create([
'user_id' => $user->id,
'amount' => $value['amount'],
'receipt' => $value['receipt']
]);
}
另一种方法是,如果每个数组$amount
和$receipt
的长度相同且值正确,您也可以在单循环中更新数据,如
foreach ($amount as $key => $value) {
$reimbursement_item = ReimbursementItem::create([
'user_id' => $user->id,
'amount' => $value,
'receipt' => (isset($receipt[$key]))? $receipt[$key]: null
]);
}