php - 在 Laravel 存储方法中的 foreach 中保存请求变量
问题描述
从表单中收集 2 个值作为变量,其余作为数组。然后将值保存在 store 方法中的 foreach 循环中。
数组值没有问题,但对于单个变量,值显示为 null 以我尝试的方式。
我试图在 foreach 循环中保存$start和$end值。代码如下:
$start = $request->start;
$end = $request->end;
foreach ($request->user_id as $key => $val) {
$bill = new UserBill;
if (is_array($request->checked) && in_array($val, $request->checked)) {
$bill->start = $start;
$bill->end = $end;
$bill->amount = $request->amount[$key];
$bill->package = $request->package[$key];
$bill->package_type = $request->package_type[$key];
$bill->user_id = $val;
$bill->save();
}
}
请帮忙。
解决方案
您可以尝试将信息直接发送到 save 方法,而不是填充对象。
foreach ($request->user_id as $key => $val) {
$bill = new UserBill;
if (is_array($request->checked) && in_array($val, $request->checked)) {
$bill->save([
"start" => $request->start,
"end" => $request->end,
"amount" => $request->amount[$key],
"package" => $request->package[$key],
"package_type" => $request->package_type[$key],
"user_id" => $val
]);
}
}
只要确保所有变量都有内容。您可以使用 dd() 帮助程序进行检查
dd($request->toArray()); //toArray() for an easier looking on the output
推荐阅读
- system-verilog - 为什么 SystemVerilog 中的 typedef 不允许有线或信号类型(wor)
- c# - 为什么我无法将整个 excel 表读取到 Datatable varialbe(dtExcelData)
- algorithm - 如何用大师定理求解递推关系 T(n) = 8T(n/2) + 1000 n2
- python - 基于条件的颜色numpy 2-dim数组
- jenkins - 在本地使用 GitLab Webhooks 和 Jenkins
- sql - 如何将 ORDER BY 与由不同聚合函数创建的 2 列一起使用
- integration - 错误:nutanix_openstack.vnc.wsgi_prism_websocket_proxy:使用 Prism 进行身份验证成功,但没有 JSESSIONID [OpenStack + Nutanix 集成]
- r - 使用for循环进行事件的R生存分析错误
- flutter - 如果它不听任何东西,颤振集团应该是单身?
- sql - “日期”用作列名