如何提交具有多个值的表单

时间:2014-09-04 16:44:20

标签: laravel

我有一张包含以下内容的表格

项目名称 测试1
测试2
测试3

在文本字段中,处理产品名称的字段的输入名称是“product_name”;

当用户点击提交按钮时,您将如何处理数组并同时将以下项目名称插入数据库...

我尝试过的东西......

我的观点中的表格

{{form::open(array('url' =>'batch', method=>'post'))}}
    <input type= "hidden" name="product_name" value="{{order->product_name}}
{{ form::close()}}

控制器

public function postBatch(){

    $posted = Input::get();

    foreach($posted as $ke=> $value){
        $batch = new Batch;
        $batch->product_name = $posted['product_name'];
     }

     $batch->save;

}

我从此代码获得的结果

我发布表单后,只有第3项出现在我的数据库中,即。只有'test 3'出现在我的数据库中并不确定所有的名字都已发布所以我设置了一个函数来计算插入的项目,在该函数之后我知道它计算3 bt我只看到一个名字。

我想知道的是什么

如何发布表单,所有产品名称将在发布后显示并保存在数据库中。

1 个答案:

答案 0 :(得分:1)

如果我理解你正在尝试做什么,我会重新考虑一下逻辑。

products的数组作为$order的属性传递给您的视图,以便将它们放置在单独的隐藏输入中。

查看:

{{form::open(array('url' =>'batch', method=>'post'))}}
    @foreach($order->products as $product)
        Input::hidden('products[]', $product->name);
    @endforeach
{{ form::close()}}

然后,使用products

遍历create()数组

<强>控制器:

public function postBatch(){

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

    foreach($products as $product){
        Batch::create(['product_name' => $product]);
     }

}