Laravel保持展平我的输入数组

时间:2017-01-11 05:27:17

标签: php laravel laravel-5

我正在尝试在Laravel中为多个项目制作动态编辑表单。为此,我使用输入命名约定:

name="groups[][name]"

...

name="groups[][description]"

无论出于何种原因,尝试在Laravel中处理此表单始终会导致“组”输入为平面数组。我用以下方法获取集合:

$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->索引填充空[]修复了问题。

2 个答案:

答案 0 :(得分:0)

是的,格式化时出错,每次命名输入groups[]输入索引加1时,必须将输入命名为:

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

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

您可以添加迭代器等。

答案 1 :(得分:0)

您可以使用临时数组并将每个键设置为namedescription等,然后将其分配给组。

e.g。

foreach ($items as $key=>$item){
  $t = array(); 
  $t["name"] = $item["name"]; 
  $t["description"]=  $item["description"];
  $groups[] = $t; 
}