首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我得到一个未初始化的字符串偏移量:2

我得到一个未初始化的字符串偏移量:2
EN

Stack Overflow用户
提问于 2022-08-25 03:43:48
回答 2查看 55关注 0票数 0

我正在尝试用laravel在数据库中插入多行

这是我的控制器代码

代码语言:javascript
复制
    $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代码

代码语言:javascript
复制
 <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

我的密码有什么问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-25 07:58:31

使用Shibon的代码

代码语言:javascript
复制
<input type="hidden" name="ref_id[]" value="{{$item->id}}">
<input type="number" class="form-control" name="value[]" value="{{$item->value}}">

在你的控制器里

代码语言:javascript
复制
$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);
}
票数 0
EN

Stack Overflow用户

发布于 2022-08-25 03:55:04

在html代码中,您将传递一个输入ref_id值的字符串。

从PHP中,您将该值的值赋值给一个变量,并尝试将其作为数组来获取。

代码语言:javascript
复制
                <input type="hidden" name="ref_id" value="{{$item->id}}">
                <input type="number" class="form-control" name="value">

这需要这样的东西

代码语言:javascript
复制
                <input type="hidden" name="ref_id[]" value="{{$item->id}}">
                <input type="number" class="form-control" name="value[]" value="1">

数组索引将从0开始,因此循环如下所示

代码语言:javascript
复制
for ($i=0; $i<count($references); $i++) { 

进行批处理插入而不是在循环中插入值是好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73481632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档