2017-01-11 4 views
0

私はLaravelで一度に複数の項目に対して動的編集フォームを作成しようとしています。常にいる「グループの入力になりLaravelでこのフォームを処理しようとすると、何らかの理由でLaravelは入力配列の平坦化を維持します

name="groups[][name]" 

...

name="groups[][description]" 

:このため、私は入力を使用しているの命名規則フラットアレイ。

$request->input('groups'); 

and var_dump shows: 

    array(
    10 
) 
    { 
    [0] => array(
     1 
    ) 
     { 
     ["name"] => string(15) "Baseball Cardsf" 
     } 

    [1] => array(
     1 
    ) 
     { 
     ["description"] => string(22) "Baseball Cards Section" 
     } 

    [2] => array(
     1 
    ) 
     { 
     ["id"] => string(1) "6" 
     } 

    [3] => array(
     1 
    ) 
     { 
     ["willDelete"] => string(5) "false" 
     } 

    [4] => array(
     1 
    ) 
     { 
     ["hasUpdated"] => string(4) "true" 
     } 

    [5] => array(
     1 
    ) 
     { 
     ["name"] => string(12) "Board Gamesf" 
     } 

    [6] => array(
     1 
    ) 
     { 
     ["description"] => string(19) "Board Games Section" 
     } 

    [7] => array(
     1 
    ) 
     { 
     ["id"] => string(1) "5" 
     } 

    [8] => array(
     1 
    ) 
     { 
     ["willDelete"] => string(5) "false" 
     } 

    [9] => array(
     1 
    ) 
     { 
     ["hasUpdated"] => string(4) "true" 
     } 
    } 

これは私の書式設定で間違っているのですか?これはLaravel固有の問題ですか?

更新

問題は、書式設定されました。空の[]を埋めるために$ loop-> indexを使って問題を修正しました。入力インデックスは1だけインクリメントされ、あなたがgroups[]、あなたの入力に名前を付け、毎回の書式に誤りがあり

答えて

0

はい、あなたはこのようなあなたの入力に名前を付ける必要があります。

1st item 
name="groups[0][name]" 
name="groups[0][description]" 

2nd item 
name="groups[1][name]" 
name="groups[1][description]" 

あなたはイテレータか何かを追加することができます。

+1

私は$ loop-> indexを使ってこれを試みましたが、それは魅力的でした。ありがとう! –

0

一時的な配列をとり、各キーをname,descriptionなどのように設定し、最後にグループに割り当てることができます。

foreach ($items as $key=>$item){ 
    $t = array(); 
    $t["name"] = $item["name"]; 
    $t["description"]= $item["description"]; 
    $groups[] = $t; 
} 
関連する問題