laravel - 计算循环内的关系
问题描述
我在“表单”和“字段”之间有一个多对多的关系,在我的中间表上我有一个名为“顺序”的附加列,以便我可以编辑表单上字段的顺序。
我有此代码用于向表单添加字段。它需要一个字段 id 数组,然后遍历它们并将它们附加到表单中。但是一旦附加了字段,当我 dd 时,它们的顺序都是 0?
我认为在 foreach 的第一次迭代中,订单将 = 0,而第二次将 = 1?
假设我在之前没有任何字段的表单中添加了 2 个字段。
public function store(Request $request)
{
$form = Form::findOrFail($request->formId);
foreach($request->fieldIds as $field) {
$form->fields()->attach($field, ['order' => count($form->fields)]);
}
dd($form->fields()->get());
}
解决方案
我建议这样做:
public function store(Request $request)
{
$form = Form::findOrFail($request->formId);
foreach($request->fieldIds as $order=>$field) {
$form->fields()->attach($field, ['order' => $order]);
}
}
推荐阅读
- android - Layout changes after turning the emulator, but not the device
- javascript - TypeError:绑定标签可能为空的json数据时无法读取null的属性'map'
- javascript - RXJS 扫描 - withLatestFrom 另一个 observable
- c# - 如何退出由 URL SCHEME 打开的统一应用程序并返回主应用程序?
- android - 如何意图python?
- python-3.x - jupyter notebook 中图像的交互式标记
- c# - 从 NET Core 3.0 中的代码获取 ApplicationIcon
- python - 错误代码 1 pip 安装 -e 。在窗户上复古健身房
- python - 以字符串形式返回数学函数
- javascript - 在nodejs中将缓冲区转换为视频时出错