laravel 如何插入多个值

laravel how to inserting multiple value

大家好,我是 laravel 的初学者,我想知道如何向 table 插入多个值,例如,我有一个 order_detail table 在我的数据库中,它有 order_id、product_id、价格和总计,

我想插入一个多值,所以我创建了这样的 表单 ,其中 可以添加 使用 javascript

<?php for($x = 1;$x <=2; $x++){ ?>

  {{ Form::text('', $x]) }}
  {{ Form::text('pj[$x]order_id') }}
  {{ Form::text('pj[$x]product_id) }}
  {{ Form::text('pj[$x]price) }}
  {{ Form::text('pj[$x]total) }}
  {{ Form::submit('insert!') }}

<?php } ?>

然后我在 OrderDetailController

中尝试类似的操作
$inputs = Input::get('pj');

if(DB::table('order_detail')->insert($inputs)){
  return Redirect::route('admin.order_detail.index')
                  ->with('message','success');
}
return Redirect::back()
         ->with('message','something went wrong')
         ->withInput();

但我只从我的输入中得到 1 个值,这是最后一个

ps: 这是我第一次在这个论坛提问,所以如果你需要任何信息,请随时问我,请原谅我的英语不好,提前谢谢!

你能打印你的输入吗?我会检查它。 或者试试这个代码:

$inputs = Input::get('pj');
foreach($inputs as $input){
   if(DB::table('order_detail')->insert($input)){}
   else{
      return Redirect::back()
        ->with('message','something went wrong')
        ->withInput();
      }
}
Redirect::route('admin.order_detail.index')
              ->with('message','success');

一开始,你的代码有错别字,这个:

{{ Form::text('pj[$x]product_id) }}

应该是:

{{ Form::text('pj[$x]product_id') }}

这将创建文本输入:

<input name="pj1product_id" type="text">

这样的输入名称你应该在 PHP 中解析,但你可以使用表单字段数组。

未测试示例:

@for($x = 1;$x <=2; $x++)
   {{ Form::text('', $x) }}
   {{ Form::text('pj[][order_id]') }}
   {{ Form::text('pj[][product_id]') }}
   {{ Form::text('pj[][price]') }}
   {{ Form::text('pj[][total]') }}
@endfor
{{ Form::submit('Insert') }}

和PHP:

$pj = Input::get('pj');
foreach($pj as $key=>$order) {
   DB::table('order_detail')->insert($order);
}

谢谢!!真的很感谢你们俩。 在这里,我将我的代码与您的代码的引用结合起来

我的表格

@for($x = 1; $x <=2; $x++)

  {{ Form::text('', $x]) }}
  {{ Form::text('pj['. $x .'][order_id]') }}
  {{ Form::text('pj['. $x .'][product_id]') }}
  {{ Form::text('pj['. $x .'][price]') }}
  {{ Form::text('pj['. $x .'][total]') }}

@endfor

{{ Form::submit('insert!') }}

这是我的函数

$pj = Input::get('pj');

foreach($pj as $order) {
  if(DB::table('order_detail')->insert($order)) {}
  else {
    return Redirect::route('admin.order_detail.index')->with('message','failed');
  }
}

return Redirect::route('admin.order_detail.index')->with('message','success');