gpt4 book ai didi

php - 如何使用查询生成器 laravel 将多条记录插入 mysql

转载 作者:行者123 更新时间:2023-11-29 05:55:50 25 4
gpt4 key购买 nike

如何使用查询生成器 laravel 将多条记录插入到 mysql 中?我尝试使用 insert->() 将记录插入 mysql 表,但它只是插入 1 个值。我尝试阅读一些关于插入多条记录的文章,但它并不像我想要的那样

  1. 我的 Controller

    public function postBuy(Request $request)
    {
    $data = array();
    $data['products_id']= $request->get('products_id');
    $data['products'] = $request->get('products');
    $data['price'] = $request->get('price');
    $data['user_id'] = $request->get('user_id');
    $data['user_name'] = $request->get('user_name');
    $data['user_email'] = $request->get('user_email');

    $query_insert = DB::table('cashier')->insert($data);

    return redirect('index');
    }
  2. 我的表单

       <form method="POST" action='{{ url("buy") }}' enctype="multipart/form-data">  
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
    <table class="table table-stripped">
    <thead>
    <tr>
    <th>Product</th>
    <th>Price</th>
    </tr>
    </thead>
    <tbody>
    @foreach($item as $items)
    <input type="hidden" name="products_id" class="form-control" required="required" value="{{$items->id}}" readonly="readonly">
    <tr>
    <td>
    <div class="form-group">
    <input type="text" name="products" class="form-control" required="required" value="{{$items->name}}" readonly="readonly">
    </div>
    </td>
    <td>
    <div class="form-group">
    <input type="text" name="price" class="form-control" required="required" value="{{$items->price}}" readonly="readonly">
    </div>
    </td>
    </tr>
    @endforeach
    <tr>
    <td>Total :</td>
    <td><?php echo number_format($total) ;?></td>
    </tr>
    </tbody>
    </table>
    <div class="form-group">
    <input type="hidden" name="user_id" class="form-control" required="required" value="{{Session::get('id')}}">
    </div>
    <div class="form-group">
    <input type="hidden" name="user_name" class="form-control" required="required" value="{{Session::get('name')}}">
    </div>
    <div class="form-group">
    <input type="hidden" name="user_email" class="form-control" required="required" value="{{Session::get('email')}}">
    </div>
    <br>
    <button type="submit" class="btn btn-success"><span class="glyphicon glyphicon-ok"></span> Buy</button>
    <button type="button" class="btn btn-danger" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span>Cancel</button>
    </form>
  3. 我的 View 中的记录将被插入到 mysql 表中 modal view

  4. 我想将那 2 条记录插入我的收银台,但它只插入 1 条记录 cashier table

最佳答案

使用 Eloquent 或查询构建器在 Laravel 中进行批量插入真的很容易。

您可以使用以下方法:

public function postBuy(Request $request)
{
$data = array(
array('products_id'=> $request->get('products_id'), 'products'=> $request->get('products'), 'price'=> $request->get('price'), 'user_id'=> $request->get('user_id'), 'user_name'=> $request->get('user_name'), 'user_email'=> $request->get('user_email')),
array('products_id'=> $request->get('products_id'), 'products'=> $request->get('products'), 'price'=> $request->get('price'), 'user_id'=> $request->get('user_id'), 'user_name'=> $request->get('user_name'), 'user_email'=> $request->get('user_email'),
//...
);

$query_insert = DB::table('cashier')->insert($data);
return redirect('index');

//For info
Model::insert($data); // Eloquent approach
DB::table('cashier')->insert($data); // Query Builder approach as you are using
}

编辑:

在您的情况下,您需要在表单的每个输入字段中使用 []!喜欢:

name="products_id[]", name="products[]", name="price[]"

编辑 2:

您可以使用 foreach 添加多条记录,例如:

foreach ($request as $key=>$value)
{
$data[] = [
'products_id' => $value['products_id'],
'products' => $value['products'],
'price' => $value['price'],
'user_id' => $value['user_id'],
'user_name' => $value['user_name'],
'user_email' => $value['user_email']
];
}

DB::table('cashier')->insert($data); // Query Builder approach as you are using

希望对你有帮助!

关于php - 如何使用查询生成器 laravel 将多条记录插入 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49488827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com