laravel如何插入多个值

时间:2015-09-24 00:28:31

标签: php arrays laravel laravel-4 crud

大家好,我是laravel的初学者,我想知道如何在表格中插入多个值,比如我的数据库上有一个 order_detail 表,它有 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:这是我第一次在这个论坛上提问,所以如果你需要任何信息,请随时问我,并原谅我的英语不好,提前谢谢!

3 个答案:

答案 0 :(得分:0)

您可以打印输入吗?我会检查它。 或者试试这段代码:

public long readFileFromHDFS(String source) throws IOException {

    Configuration obj = new Configuration();
    obj.set("fs.default.name", "hdfs://127.0.0.1:9000");

    FileSystem fs = FileSystem.get(obj);
    Path sourcePath = new Path(fs.getHomeDirectory() + source + ".txt");
    FSDataInputStream in = fs.open(sourcePath);
    TestObject objj = null;

    final long startTime = System.nanoTime();
    try {
        ObjectInputStream si = new ObjectInputStream(in);
        objj = (TestObject) si.readObject();
        objj.printHello();
        si.close();
    } catch (Exception e) {
        System.out.println(e);
    } finally {
        in.close();
        fs.close();            
    }

    return System.nanoTime() - startTime;
}

答案 1 :(得分:0)

首先,您在代码中输入了错字:

{{ 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);
}

答案 2 :(得分:0)

谢谢!非常感谢你们俩。 在这里,我将我的代码与两个代码的引用结合起来

我的表格

@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');