2014-09-04 22 views
1

我有以下如何提交表格具有多個值

項目名稱 試驗形式1
試驗2
試驗3

在文本字段中的字段的輸入名稱處理產品名稱的是'product_name';

你會如何處理陣列,同時插入下面的項名稱到數據庫中,當用戶點擊提交按鈕...

我已經試過的手..

FORM在我看來,

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

} 

Resul我從這個代碼

我張貼表格後,只有第三項出現在我的數據庫即。只有'測試3'出現在我的數據庫中並不確定所有的名字都發布了,所以我設置了一個函數來計算插入的項目,並且在函數之後我知道它的數量是3 bt,我只能看到一個名字。

我想知道

我怎樣才能發佈形式和所有的產品名稱後會出現過帳和保存在數據庫中的內容。

+0

要創建批量物體內部的for循環,以便後for循環僅終止一個批處理對象at是$ posted數組中的最後一個。 所以試着把'$ batch-> save()'放在for循環裏作爲最後一條語句:) – 2014-09-04 17:06:50

+0

當我在循環中放入$ batch-> save()後,只有最後一個項目'test3'重新出現 – user3758351 2014-09-04 17:24:03

回答

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

}