我有一张桌子(见下文),我正在雄辩地根据控制器上的键获取所有数据。
我的表在ErrorID
列和FactorID
列都包含重复
Error Factor Attribute PK_ID Comment ErrorID FactorID AttID
X1 YY Att1 1
X1 YY Att2 2
X1 YY Att3 3
X2 ZZ Att4 4
X4 ZZ Att5 5
数据以以下格式表示:
<h6>Error</h6>
<h5>related Factor</h5>
<type='checkbox'id='related attribute 1 value'>
<textarea id='related attribute 1 value comment'></textarea>
<type='checkbox'id='related attribute 2 value'>
<textarea id='related attribute 2 value comment'></textarea>
//... and so on
<h6>Error</h6>
<h5>related Factor</h5>
<input type='checkbox' id='related attribute 1 value'>
<textarea id='related attribute 1 value comment'></textarea>
<type='checkbox' id='related attribute 2 value'>
<textarea id='related attribute 2 value comment'></textarea>
//... and so on
在我看来,使用foreach
可以做到:
@foreach($errorForView as $error)
<h5>{{$error['error']}}</h5>
@foreach($error['factors'] as $factor)
<h6>{{$factor['factor']}}</h6>
@foreach($factor['attributes'] as $attr)
<input type='checkbox' name='Att[]' value='{{$attr}}'>
<input type='textarea' name='comment[]' >
@endforeach
@endforeach
@endforeach
但是,我无法将更新发布或从生成的表单插入数据库。
我尝试使用[]
(数组)从所有请求中收集值,但这将错误的数据以错误的顺序插入到数据库中。
如何循环遍历每个复选框,然后收集将代表我的属性值的值,并遍历每个文本区域,以收集数据以评论表中的列
$num = count($request->input('Att'));
for ($i = 0; $i < $num; $i++) {
$att = (int)$request->input('Att')[$i];
$rowz= table::where('id', '=', $SN)->first();
if ($request->has('Att')[$i]) {
$row->Value = 0;
} else {
$row->Value = 1;
$row->Comment = $request->input('comment')[$i];
}
$row->save();
}