我正在尝试用laravel在数据库中插入多行
这是我的控制器代码
$references = References::all();
$ref_id = $request->ref_id;
$value = $request->value;
for ($i=1; $i<=count($references); $i++) {
$data_save = [
'ref_id' => $ref_id[$i],
'value' => $value[$i],
];
DB::table('values')->insert($data_save);
}
return redirect('values')->with('success', 'Data created Successfully');这是我的HTML代码
<form action="{{ url('value/store') }}" method="post" enctype="multipart/form-data">
@csrf
@method('post')
@foreach ($references as $item)
<div class="row">
<div class="col sm-6 form-group">
<input type="hidden" name="ref_id" value="{{$item->id}}">
<input type="text" value="{{$item->name_ref}}">
</div>
<div class="col sm-6 form-group">
<input type="number" class="form-control" name="value">
</div>
</div>
@endforeach
<button type="submit" class="btn btn-primary">Save</button>
</form>我有个错误
未初始化字符串偏移量:2
我的密码有什么问题吗?
发布于 2022-08-25 07:58:31
使用Shibon的代码
<input type="hidden" name="ref_id[]" value="{{$item->id}}">
<input type="number" class="form-control" name="value[]" value="{{$item->value}}">在你的控制器里
$ref_id = $request->ref_id;
$value = $request->value;
//array start from 0 & count the array for your ref_id not for all reference
for ($i=0; $i<count($ref_id); $i++) {
$data_save = [
'ref_id' => $ref_id[$i],
'value' => $value[$i],
];
DB::table('values')->insert($data_save);
}发布于 2022-08-25 03:55:04
在html代码中,您将传递一个输入ref_id值的字符串。
从PHP中,您将该值的值赋值给一个变量,并尝试将其作为数组来获取。
<input type="hidden" name="ref_id" value="{{$item->id}}">
<input type="number" class="form-control" name="value">这需要这样的东西
<input type="hidden" name="ref_id[]" value="{{$item->id}}">
<input type="number" class="form-control" name="value[]" value="1">数组索引将从0开始,因此循环如下所示
for ($i=0; $i<count($references); $i++) { 进行批处理插入而不是在循环中插入值是好的。
https://stackoverflow.com/questions/73481632
复制相似问题