我正在尝试在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->索引填充空[]修复了问题。
答案 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)
您可以使用临时数组并将每个键设置为name
,description
等,然后将其分配给组。
e.g。
foreach ($items as $key=>$item){
$t = array();
$t["name"] = $item["name"];
$t["description"]= $item["description"];
$groups[] = $t;
}